使用GMock验证析构函数调用

And*_*ack 11 c++ unit-testing mocking googlemock

使用GMock,我如何验证是否调用了类的析构函数?有没有办法,除了把它包装在另一个班级

明显的方法,EXPECT_CALL(object, ~classtype())产生编译器错误(gmock不能产生一个调用的mock方法gmock_~classtype).

nab*_*lke 18

检查析构函数调用的简单方法:

class MockFoo : public Foo {
  ...
  // Add the following two lines to the mock class.
  MOCK_METHOD0(Die, void());
  virtual ~MockFoo() { Die(); }
};
Run Code Online (Sandbox Code Playgroud)

在你的测试功能中:

 MockFoo* foo = new MockFoo;
  ...
  {
    EXPECT_CALL(*foo, Die());
  }
Run Code Online (Sandbox Code Playgroud)

更多细节可以在这里找到: 嘲弄破坏者