2.1 如何测试对象方法
MockCpp支持面向接口的测试,如以下接口类:
class ICalc
{
public:
virtual ~ICalc() {};
virtual int add(int a, int b) = 0;
};
add接口测试用例:
TEST_F(CalcTest, should_return_11_after_mock_ICalc_add_method)
{
MockObject calc;
MOCK_METHOD(calc, add)
.stubs()
.will(returnValue(11));
EXPECT_EQ(11, calc->add(1,1));
}
2.2 让同一个方法返回不同的值
TEST_F(CalcTest, should_return_different_value_when_mock_return_value)
{
MockObject calc;
MOCK_METHOD(calc, add)
.stubs()
.will(returnValue(10))
.then(repeat(20,2))
.then(returnValue(5));
EXPECT_EQ(10, calc->add(1,1));
EXPECT_EQ(20, calc->add(1,1));
EXPECT_EQ(20, calc->add(1,1));
EXPECT_EQ(5, calc->add(1,1));
}<