gpt4 book ai didi

c++ - 如何在 MFC 应用程序中使用 gmock

转载 作者:行者123 更新时间:2023-11-28 02:52:42 24 4
gpt4 key购买 nike

我有一个非托管的 mfc 应用程序。我想使用 gmock 集成一些单元测试。我添加了所有包含、库。

但是我怎样才能开始运行测试呢?

我知道他们在其他情况下使用 main 方法运行测试。

#include "gmock/gmock.h"

int main(int argc, char** argv) {
testing::InitGoogleMock(&argc, argv);
return RUN_ALL_TESTS();
}

但由于 mfc 应用程序没有 main 方法,只有 InitInstance 方法。如何开始运行测试?

最佳答案

Google 建议您为测试创建一个单独的项目 - test 项目 - 它有自己的 int main。他们的FAQs page引用以下资源以获取指导:

http://hassanjamilahmad.blogspot.com/2009/07/gtest-starters-help.html

(如果您考虑一下,这是有道理的。没有真正的理由应该在最终产品中部署单元测试。单元测试旨在供开发人员使用;而不是您的客户。)

简而言之,这是一般设置:

  • 创建一个空的 C++ 项目并将其配置为构建一个 .exe
  • 在此项目中定义一个int main,并添加您提到的googletest样板代码
  • 指定测试项目依赖于您的主要项目的输出(在链接器属性中)
  • 向该项目添加一个构建后事件,调用它自己的输出,从而自动运行测试

一些需要警惕的事情,根据过去的经验:

  • 此设置需要导出 MFC 项目中的类/函数,以便测试项目使用(否则无法访问它们)

  • 我们在将 MFC 项目链接(即通过链接器)到测试项目时遇到了一些问题。我们最终将 MFC 项目中的代码提取到单独的库中,并使用 googletest 来测试这些库。 (这些更容易配置,并且有助于代码组织作为奖励。)

关于编辑:澄清一下,这些细节对应于 googletest,但也适用于 gmock,因为 gmock 在后台使用 googletest。

关于c++ - 如何在 MFC 应用程序中使用 gmock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22678975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com