如何在 VisualStudio 中对 main() 进行单元测试

How to unit test main() in VisualStudio

本文关键字:单元测试 main VisualStudio 中对      更新时间:2023-10-16

有没有一种简单的方法来C++Visual Studio 2019中单元测试main()

我尝试#includingmain.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 年,直到他们成为专家,然后才考虑测试。不,我只是建议他们在引入测试之前至少应该了解基础知识并熟悉功能。

一个重要的步骤,当然是达到可以编写可测试代码的地步,如果不实际尝试测试代码,你就不会到达那个阶段,然后你会看到问题在哪里,所以从这个角度来看,应该在开发过程的早期引入测试。