如何在 VisualStudio 中对 main() 进行单元测试
How to unit test main() in VisualStudio
有没有一种简单的方法来C++Visual Studio 2019中单元测试main()
?
我尝试#including
main.h并从测试中调用main()
,但它"看起来"像是测试的main()
被调用,导致递归。
我想很早就向学生介绍测试(编写代码以使测试绿色(,学生将没有功能或类的经验。
仅供参考,我们正在使用GoogleTest,但该选择可以更改。
main
很特别,因为程序中只能有一个main
。此外,main
也不是您通常进行单元测试的内容。但是,解决方案相当简单
// the "main" function you can test
int my_main(int argc, char** argv) {
// ...
}
// your main (the one you dont include for testing
int main(int argc, char** argv) {
return my_main(argc,argv);
}
学生将没有(尚(功能或课程的经验
我对这个策略有疑问。可组合性是单元测试的先决条件。如果您有可以单独测试的小单元,则单元测试是有意义的。在能够进行单元测试之前main
需要基本了解可以调用(和测试(的函数。
我建议不要使用这种策略。
新程序员不会从测试开始。在考虑测试之前,至少需要向他们介绍函数。
虽然在技术上可以测试 main,但我会停下来思考这正在发送什么消息。如果这有机会养成坏习惯,那么首先就不值得这样做。
需要明确的是,我并不是建议学生离开 2 年,直到他们成为专家,然后才考虑测试。不,我只是建议他们在引入测试之前至少应该了解基础知识并熟悉功能。
一个重要的步骤,当然是达到可以编写可测试代码的地步,如果不实际尝试测试代码,你就不会到达那个阶段,然后你会看到问题在哪里,所以从这个角度来看,应该在开发过程的早期引入测试。
相关文章:
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 用于交叉编译和CMake的预处理器宏的单元测试
- C++ 用于单元测试的模板模板
- 提升 1.64 单元测试编译失败
- 单元测试欧拉到四元数实现失败
- 运行 C++ 单元测试时LNK2005链接错误
- 禁用自动捕获 Googletest 单元测试中的C++异常
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 使用 Google Test 对自定义断言函数进行单元测试
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 在Qt C++单元测试中动态加载QQuickWindow而不是QQuickWidget
- MS 本机单元测试 - 断言::线程失败不起作用
- 如何获取 CMake 单元测试的相对路径?
- QTimer 超时不会在单元测试中触发
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 在 AtMega32a 上运行的C++的单元测试
- 如何在 VisualStudio 中对 main() 进行单元测试
- 单元测试 - 仅在"int main()"左右重新编译以减少编译时间