使用Visual Studio 2017/2019,可以很容易地设置一个新的GoogleTest项目并开始编写测试(只要您始终不介意使用旧版本的GoogleTest即可。)微软甚至还标出了不错的how-to。
但是也要使用GoogleMock吗?您可能会认为,由于Google早前将gtest / gmock组合在一起,所以这才行得通。只需#include "gmock/gmock.h"
并嘲笑。但是不,模板自动添加的GoogleTest NuGet package根本不包含gmock
文件夹。
[尝试添加第二个GoogleMock NuGet程序包会导致多个问题,例如gtest / gmock版本不匹配,包含路径重叠等。
用one from Google替换Microsoft GoogleTest NuGet程序包会导致链接错误:
MSVCRTD.lib(exe_main.obj) : error LNK2019: unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
那么,在Visual Studio中设置GoogleTest / GoogleMock的当前推荐(最痛苦的方式)是什么?应该可以通过“测试资源管理器”发现,运行和调试测试。
这些是我最终到达的步骤,以使GoogleTest / GoogleMock在本地Google Test项目中一起工作:
gtest_main.cc
并将其添加到项目中。它应该在packages\gmock.1.10.0\lib\native\src\gtest\src\
此时项目应该看起来像这样(如果没有,请尝试Unloading和Reloading项目):
最后的配置步骤是禁止对三个Google .cc文件使用Precompiled Headers。
打开生成的Test.cpp
文件,并在顶部添加#include "gmock/gmock.h"
。您现在可以开始使用GoogleMocks编写测试了。
#include "pch.h"
#include "gmock/gmock.h"
class MockTest {
public:
MOCK_METHOD(void, SomeMethod, ());
};
TEST(TestCaseName, TestName) {
MockTest mock;
EXPECT_CALL(mock, SomeMethod);
mock.SomeMethod();
EXPECT_EQ(1, 1);
EXPECT_TRUE(true);
}