Callback()調用的回調函數打印到控制檯,但gmock未通過測試,表示沒有發生回調。我究竟做錯了什麼?gmock:爲什麼EXPECT_CALL在我的測試中檢測不到函數調用?
class MyClass
{
public:
MyClass() { };
virtual ~MyClass() { };
void Callback() { printf("callback called\n"); };
};
class MyClassMock : public MyClass
{
public:
MOCK_METHOD0(Callback, void());
};
class Caller
{
public:
Caller(MyClass *myClass) { m_myClass = *myClass; };
void Call() { m_myClass.Callback(); };
private:
MyClass m_myClass;
};
TEST(BasicTest, Positive)
{
MyClassMock mock;
EXPECT_CALL(mock, Callback()).Times(1);
Caller caller(&mock);
caller.Call();
}
有什麼gmock錯誤/警告的準確輸出?請參閱[這裏](https://code.google.com/p/googlemock/wiki/CookBook#Mocking_Nonvirtual_Methods)如何模擬非虛擬方法。 – 2014-11-05 22:03:05
錯誤只是表示它期望1次調用而沒有實際的調用。我讀了你提供給非虛函數的鏈接,但是我不清楚我將如何適應我的代碼... – user3338893 2014-11-05 22:15:09