我希望当变量“a”等于42时调用类“foo”的函数“bar”。
以下被测代码应导致不饱和的期望/失败的测试:
int a = 41;
foo.bar();
以下被测代码应该会导致测试成功:
int a = 41;
a++;
foo.bar();
如何使用 Googlemock 来完成此操作?我考虑了以下方法,但找不到合适的匹配器。
EXPECT_CALL(mock,foo).With(someMatcher)
我会做这样的
#include <gmock/gmock.h>
#include <iostream>
class foo : public ::testing::Mock {
public:
MOCK_METHOD(void, bar, ());
};
int a = 41;
TEST(Test, Case) {
foo mock;
EXPECT_CALL(mock, bar()).WillOnce([] {
if (a != 42) FAIL();
});
a++;
mock.bar();
}