gpt4 book ai didi

c++ - 我在使用纯虚拟方法和 Google Mock 时做错了什么?

转载 作者:行者123 更新时间:2023-11-30 00:52:02 25 4
gpt4 key购买 nike

简介

我在使用 Google Mock (v1.7.0) 实现纯虚拟接口(interface)时遇到问题。

为了确定根本原因,我将纯虚拟接口(interface) SimpleMockSimple 放在一起作为测试。我相信我在这里所做的符合 this Google Mock example .

然而,当我编译它时,我得到一个错误。为什么是这样?我做错了什么?

简单测试代码

#include "gmock/gmock.h"
#include "gtest/gtest.h"

class Simple
{
public:
virtual ~Simple() {}
virtual int Initialize() = 0;
};

class MockSimple : public Simple
{
public:
MOCK_METHOD0(Initialize, int());
};

TEST(Hello, MockSimple)
{
MockSimple m;
EXPECT_CALL(m, Initialize);
m.Initialize();
}

编译命令

g++ -I../gmock/include/ -I../gmock/gtest/include  -c test.cpp -o test.o

错误输出

test.cpp: In member function ‘virtual void Hello_MockSimple_Test::TestBody()’:
test.cpp:20:5: error: ‘m.MockSimple::gmock_Initialize’ does not have class type

最佳答案

EXPECT_CALL 中调用的方法需要参数列表(在本例中为空)

EXPECT_CALL(m, Initialize());

关于c++ - 我在使用纯虚拟方法和 Google Mock 时做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20053955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com