【发布时间】:2023-03-02 21:16:01
【问题描述】:
我正在尝试开始单元测试。我正在查看一些 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);
}
我认为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()
但是,我不知道 (1) 运行测试的实际命令是什么,以及 (2) 如何实际告诉库我要运行每个测试。
那么,谁有使用过 Boost.Test 的经验?有人可以提供详细的帮助吗?非常感谢。
【问题讨论】:
标签: c++ unit-testing boost