【发布时间】:2020-01-11 03:12:47
【问题描述】:
有没有简单的方法在 C++ 中的 Visual Studio 2019 中对 main() 进行单元测试?
我已经尝试了 #including a main.h 并从测试中调用 main(),但它“看起来”像是测试的 main() 被调用,从而导致递归。
我想很早就向学生介绍测试(编写代码使测试绿色化),学生将没有(还)函数或类的经验。
仅供参考,我们使用的是 GoogleTest,但可以更改该选择。
【问题讨论】:
-
你只能有一个入口点,我认为(虽然不是 100% 肯定)所有独立的 C++ 测试运行器都需要自己的入口点(或者需要从 main() 调用它)所以不多那里的选择。似乎最好先向学生解释一个函数是什么,然后测试它。还因为在任何真实环境中 main() 的作用远超过在单个单元测试中的测试,并且无论如何都会在功能上进行拆分?
-
您可以按照 SDL2 包装 MSVC 的主要功能的方式进行操作,方法是定义一个将其重命名为其他名称的
main宏。不过,它有自己的蠕虫罐头。 -
我认为编写一个直接从
main调用的myProgram()函数不会太费劲。当然,你的学生还不知道函数,但如果你的测试调用main,它也可以调用myProgram(也可以调用main)。这只是更多的脚手架,并且会被学生认可。
标签: c++ visual-studio unit-testing main googletest