gmock_main 和 gtest_main 有什么区别?

non*_*kle 4 c++ googletest visual-studio-2010 gmock

我注意到在我的 Visual Studio 2010 设置中有些项目引用了gtest_main-mdd.lib其他项目,并且gmock_maind.lib想知道这两个库之间的区别是什么?

ixS*_*Sci 6

项目不必同时使用两者gtestgmock但可以选择gtest不使用,gmock反之亦然。对于任何一种情况,您都需要一种引入 main 函数的方法,因此您有 2 个库来引入它。

无论如何,如果您同时使用两者,那么最好使用gmock_maind.lib它,因为它具有模拟框架和测试框架的初始化。Whilegtest_main-mdd.lib仅初始化测试部分。查看gmock_main.ccgtest_main.cc

  • @nonsensickle,这两个库都仅用于初始化。您可能根本不使用它们,您可以创建自己的 main 并自己添加所需的初始化。但是一旦您使用了其中一个库,您就拥有了该库中的主要功能。每个库中只有一个 main 函数,因此您不能同时使用两个库,而一次只能使用一个。Gmock 的人知道 `gtest` 并为其调用 init 函数,而 Gtest 的人对 `gmock` 一无所知,因此不会对其进行初始化。 (2认同)