使用gmock验证攻击者调用
-
12-10-2019 - |
题
使用gmock,我如何验证班级的驱动器被称为?有办法,除了 将其包裹在另一堂课?
明显的方法, EXPECT_CALL(object, ~classtype())
产生编译器错误(Gmock无法产生称为的模拟方法 gmock_~classtype
).
解决方案
检查destructor呼叫的一种简单方法:
class MockFoo : public Foo {
...
// Add the following two lines to the mock class.
MOCK_METHOD0(Die, void());
virtual ~MockFoo() { Die(); }
};
在您的测试功能中:
MockFoo* foo = new MockFoo;
...
{
EXPECT_CALL(*foo, Die());
}
更多详情可在这找到: 嘲笑破坏者
其他提示
除非你过去 --gmock_catch_leaked_mocks=0
, ,那么当您未能销毁模拟时,Gmock应该已经检测到。驱动器是将不满意的期望标记为错误的地方,因此Gmock具有特殊的支持,可以检测未调用。
不隶属于 StackOverflow