- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 Windows x86、Android TI 2.2 上使用 Boost 1.46.1
我已经定义了自己的测试套件树,因为我需要用户选择测试顺序。尽管我知道测试应该是独立的,但这是一项要求。使用我自己的 test_suite* init_unit_test_suite(int, char**)
实现重新定义了测试套件树。
对于自动化测试用例和自动化测试套件,有 Boost 宏:BOOST_FIXTURE_TEST_CASE
和 BOOST_FIXTURE_TEST_SUITE( suite_name, F )
。这些宏将函数注册到 framework::master_test_suite()
,这在这种情况下是不受欢迎的行为。
全局 fixture (BOOST_GLOBAL_FIXTURE(fixure_name)
) 在手动测试套件定义中不受影响。
我想在 Boost 单元测试框架中使用 fixture 来手动定义测试套件和用例。一种简洁的方式。
有一些解决方法:
对于我的问题,还有其他更干净、更好的解决方案吗?我真的没有资源来深入研究 Boost 库。另一方面,我不想显着降低我这边代码的质量和可读性。
问候,LK
#include <boost/bind.hpp>
#include <boost/smart_ptr.hpp>
#include <boost/test/unit_test.hpp>
using namespace boost::unit_test;
BOOST_GLOBAL_FIXTURE(GFixture);
test_suite* init_unit_test_suite( int, char** )
{
test_suite* ts1 = BOOST_TEST_SUITE( "Suite1" );
boost::shared_ptr<TestClass1> test1 ( new TestClass1 );
ts1->add( BOOST_TEST_CASE( boost::bind(&TestClass1::Run, test1)));
boost::shared_ptr<TestClass2> test2 ( new TestClass2 );
ts1->add( BOOST_TEST_CASE( boost::bind(&TestClass2::Run, test2)));
boost::shared_ptr<TestClass3> test3 ( new TestClass3);
ts1->add( BOOST_TEST_CASE( boost::bind(&TestClass3::Run, test3)));
framework::master_test_suite().add( ts1 );
return 0;
}
单元测试框架:用户指南
http://www.boost.org/doc/libs/1_46_1/libs/test/doc/html/utf/user-guide.html
最佳答案
考虑以下代码:
#define BOOST_TEST_MAIN
#include <boost/test/included/unit_test.hpp>
#include <boost/test/unit_test_suite.hpp>
BOOST_GLOBAL_FIXTURE( ... );
BOOST_AUTO_TEST_SUITE( Suite1 )
BOOST_AUTO_TEST_CASE( Test1 )
{
TestClass1 testClass;
testClass.Run();
}
BOOST_AUTO_TEST_CASE( Test2 )
{
TestClass2 testClass;
testClass.Run();
}
BOOST_AUTO_TEST_CASE( Test3 )
{
TestClassT testClass;
testClass.Run();
}
BOOST_AUTO_TEST_SUITE_END()
这足以执行测试。
关于c++ - 在手动定义的套件树中 boost 测试用例和套件装置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6902925/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!