我有一个非托管的mfc应用程序。我想使用gmock集成一些单元测试。我添加了所有包含库。
但是我怎样才能开始运行测试?
我知道他们在其他情况下使用main方法运行测试。
#include "gmock/gmock.h"
int main(int argc, char** argv) {
testing::InitGoogleMock(&argc, argv);
return RUN_ALL_TESTS();
}
但是因为mfc应用程序没有main方法而是InitInstance方法。 我该如何开始运行测试?
答案 0 :(得分:2)
Google建议您为测试创建一个单独的项目 - test 项目 - 该项目有自己的int main
。他们的FAQs page引用了以下资源作为指导:
http://hassanjamilahmad.blogspot.com/2009/07/gtest-starters-help.html
(这是有道理的,如果你考虑一下。没有真正的理由你应该在你的最终产品中部署你的单元测试。单元测试是为了开发人员的消费而不是你的客户。)
简而言之,这是一般设置:
int main
,并添加您提到的googletest样板代码根据过去的经验,有些事情要警惕:
此设置要求导出MFC项目中的类/函数以供测试项目使用(否则无法访问它们)
我们遇到了将我们的MFC项目链接(即通过链接器)到测试项目的一些问题。我们最终将MFC项目中的代码提取到单独的库中,并使用googletest来测试这些库。 (这些更易于配置,并有助于代码组织作为奖励。)
关于编辑:为了澄清,这些细节与googletest相对应,但也适用于gmock,因为gmock使用了googletest。