What is the difference between gtest and gmock?

Rasmi Ranjan Nayak picture Rasmi Ranjan Nayak · Dec 4, 2012 · Viewed 36.7k times · Source

I'm trying to understand the purpose of google-mock, Google's C++ mocking framework.

I have already worked with gtest earlier, but still I can't understand what gmock is. Why do we need it?

gtest is used for unit testing. What do we need gmock for then, if gmock is required for unit testing?

Answer

dans3itz picture dans3itz · Dec 4, 2012

"Google Mock is not a testing framework itself. Instead, it needs a testing framework for writing tests. Google Mock works seamlessly with Google Test. It comes with a copy of Google Test bundled. Starting with version 1.1.0, you can also use it with any C++ testing framework of your choice. " - Google Mock, System Requirements

Mock are like objects, defined in such a way to mimick the real-deal by supplying controlled behavior. For instance, to test a stock tick application, you'd create a fake stock data provider that created fake stock quotes to test your code with. Think of the word mock, literally means 'to mimic'.