Please provide the solution.
#include <stdafx.h>
#include<gmock/gmock.h>
#include<gtest/gtest.h>
#include <iostream>
using ::testing::_;
using ::testing::Invoke;
using ::testing::AtLeast;
class CBasicMath
{
public:
CBasicMath() {}
virtual int Addition(int x, int y) {
return x + y;
}
};
class BasicMathTest : public::testing::Test {
protected:
CBasicMath *mTestObj;
BasicMathTest() {
mTestObj = new CBasicMath();
}
virtual ~BasicMathTest()
{
delete mTestObj;
}
};
class MockBasicTest : public CBasicMath
{
public:
MOCK_METHOD2(Addition, int(int x, int y));
MockBasicTest() {
ON_CALL(*this, Addition(_, _)).WillByDefault((Invoke(&real_, &CBasicMath::Addition)));
}
private:
CBasicMath real_;
};
TEST_F(BasicMathTest, testAddition)
{
MockBasicTest basictest;
EXPECT_CALL(basictest, Addition(2, 3)).Times(1);
//EXPECT_EQ(5, &basictest.Addition);
//EXPECT_EQ(5, mTestObj->Addition(2, 3));
}
int main(int argc, char* argv[])
{
testing::InitGoogleMock(&argc, argv);
return RUN_ALL_TESTS();
}