我有一个模拟类,目前有三种方法被模拟:
MOCK_METHOD0(method1, std::string());
MOCK_METHOD1(method2, bool(std::string str));
MOCK_METHOD1(method3, bool(std::string str));
...
在一个测试用例中,我希望 method1 只在 mockClass 上调用一次,并且不应该通过指定 Times(0) 来调用其他模拟方法。
{
InSequence sequence;
EXPECT_CALL(*mockClass, method1(_)).WillOnce(doSomething());
EXPECT_CALL(*mockClass, method2(_)).Times(0);
EXPECT_CALL(*mockClass, method3(_)).Times(0);
}
但是,如果在模拟类上模拟方法的数量非常大,我将不得不编写很多.Times(0) 在这些我不希望它们被调用的模拟方法上。
我想如果我省略所有这些.Times(0),谷歌测试会将无趣的模拟函数调用打印到控制台,但这些是警告而不是错误,很难捕获。有没有一种简单的方法可以做到这一点?
您可以使用
StrictMock
- 有关不同模拟变体的更多文档,请参阅此链接。