我想给TDD一个尝试,我选择了UnitTest ++框架,但文档几乎不存在(据我所知)。UnitTest ++和main
我的担心是这样的:在我见过的所有教程中,他们将UnitTest::RunAllTests()
放在main()
函数中。我猜他们只是为了简化说明,但我不想用我的软件。我应该在哪里放UnitTest::RunAllTests()
,以便我每次构建软件时都可以执行,而不是在运行时执行它?
我想给TDD一个尝试,我选择了UnitTest ++框架,但文档几乎不存在(据我所知)。UnitTest ++和main
我的担心是这样的:在我见过的所有教程中,他们将UnitTest::RunAllTests()
放在main()
函数中。我猜他们只是为了简化说明,但我不想用我的软件。我应该在哪里放UnitTest::RunAllTests()
,以便我每次构建软件时都可以执行,而不是在运行时执行它?
UnitTest::RunAllTests()
应该放入单独程序的main
函数中,该函数是作为构建过程的一部分编译和运行的。
我们过去做过的一件事是添加一个命令行参数,它使主要可执行文件运行所有测试,然后退出。安排一些#ifdefs是相当容易的,这样这些代码就可以在发布版本上编译出来。就像这样(它不是非常C++,但如果你不解析命令行参数已经是最简单的方法):
int main (int argc, char *argv[])
{
#ifdef DEBUG
if (argc > 1 && !strcmp(argv[2], "-t"))
{
return UnitTest::RunAllTests();
}
#endif
[rest of program]
}