如何解决Google Mock-模拟对象无法在Visual Studio中构建
我遵循this post的第二个选项在Visual Studio中设置gmock。这是整个test.cpp
文件。
#include "pch.h"
class ServiceBus {
public:
void publish(int x);
};
class MockServiceBus : public ServiceBus {
public:
MOCK_METHOD1(publish,void(int x));
};
class Example {
private:
ServiceBus bus;
public:
Example(ServiceBus& bus) : bus{ bus } {}
void call_bus() {
bus.publish(0);
}
};
TEST(AutoBrakeTest,shouldTestMock) {
MockServiceBus bus{};
Example example{ bus };
EXPECT_CALL(bus,publish(::testing::_));
example.call_bus();
}
此代码产生以下错误。
Error LNK2019 unresolved external symbol "public: void __thiscall ServiceBus::publish(int)" (?publish@ServiceBus@@QAEXH@Z) referenced in function "public: void __thiscall Example::call_bus(void)" (?call_bus@Example@@QAEXXZ) MyProjectTesting C:\Users\pavli\source\repos\MyProject\MyProjectTesting\test.obj 1
如果我从TEST函数中注释掉行example.call_bus();
,则可以正常编译。我对C ++相当陌生,这使我头疼不已。你能帮忙吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。