我正在尝试开始单元测试.我正在寻找一些C++框架,并想尝试Boost.Test.文档看起来非常彻底,而且有点压倒性,尤其是新的单元测试人员.所以这是我想要的情况:
假设我有2个课程,Foo并且Bar.我想编写一套测试Foo和一套测试Bar,最好是在不同的文件中.我只想在运行带有命令行参数的程序时才运行测试.所以我main()应该看起来像:
int main(int argc, const char* argv[])
{
if (argc == 1 && strcmp(argv[0], "-test") == 0)
run_all_tests();
else
return program_main(argc, argv);
}
Run Code Online (Sandbox Code Playgroud)
我想test_foo.cpp应该是这样的:
#include "foo.hpp"
#define BOOST_TEST_MODULE Foo test
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE( Foo_Test )
BOOST_AUTO_TEST_CASE( Foo1 )
{
Foo f;
BOOST_CHECK( f.isValid() );
}
BOOST_AUTO_TEST_CASE( Foo2 )
{
Foo f;
BOOST_CHECK( f.baz() == 5 );
}
BOOST_AUTO_TEST_SUITE_END()
Run Code Online (Sandbox Code Playgroud)
但是,我不知道(1)运行测试的实际命令是什么,以及(2)如何实际告诉库我想要运行每个测试.
那么,谁有Boost.Test的经验?有人可以详细帮助吗?非常感谢.