首先创造一个 Google Test
项目,这个项目需要引用被测试的项目,如下图:
由于我在 visual studio 中建立的是控制台应用程序,它实际上是一个 .exe
程序,这个时候项目目录下不会有 .dll
或者 .lib
,而是有 .obj
,我们需要像导入其他任何第三方库一样将 .obj
添加到 google test
项目的依赖库目录中。
![](https://img-blog.csdnimg.cn/img_convert/f627a5ae9b7733f4fda1be55083a55de.png
我们在控制台项目中编写了一个 thread
类,此时会生成一个 thread.obj
还有整个项目的 yPlayerServer.obj
,这个时候一定要注意,不能将 yPlayerServer.obj
调加到附加依赖库中,因为 我们在主程序中定义了 main
函数,而在 google test
中也定义了main
函数,这会造成 main
函数的重定义。
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv); // 初始化 Google Test
return RUN_ALL_TESTS(); // 运行所有测试
}
由于我们的 therad
类是一个模板类,那么类的实现也一定要写在头文件中,包括内联函数也是一样。
不然的话,编译后, google test
会报错找不到定义。
最后程序完美运行: