Tim*_*Tim 7 c++ unit-testing cppunit
我加入了一个CPPUnit用于单元测试的项目,并将添加一些可能共享设置和拆卸代码的测试.在研究这个问题时,我遇到了
CPPUNIT_TEST_SUITE_PROPERTY
Run Code Online (Sandbox Code Playgroud)
(来自https://people.freedesktop.org/~mmohrhard/cppunit/group___writing_test_fixture.html)
它的描述说
将属性添加到测试套件构建器上下文.
http://cppunit.sourceforge.net/doc/cvs/group___writing_test_fixture.html说明如下:
将属性添加到测试套件构建器上下文
我不确定它的预期用途或目的是什么,尽管看起来它可能有助于共享公共信息等.我没有看到它的使用示例.
这有什么价值,是否有一些例子指向我?
根据这段代码,看起来您应该能够在创建测试套件并将其作为参数传递给特定测试时在某个时刻检索该属性。
也许目标是让你做:
#define CPPUNIT_TEST_WITH_PARAM(testMethod,param) \
CPPUNIT_TEST_ADD( new CppUnit::ParameterizedTestCase<ThisTestFixtureType>( \
context.getTestNameFor( #testMethod ), \
#testMethod, \
&TestFixtureType::testMethod, \
context.makeFixture(), \
context.getStringProperty( param ) ) )
CPPUNIT_TEST_SUITE( MyTestSuite);
CPPUNIT_TEST_SUITE_PROPERTY( "param1", "foo" )
CPPUNIT_TEST_SUITE_PROPERTY( "param2", "bar" )
CPPUNIT_CPPUNIT_TEST_WITH_PARAM( func, "param1" )
CPPUNIT_CPPUNIT_TEST_WITH_PARAM( func, "param2" )
CPPUNIT_TEST_SUITE_END();
void func( const std::string& param );
Run Code Online (Sandbox Code Playgroud)
这样就结束了调用func("foo")和func("bar")。这会很好,因为它可以添加字符串参数化测试。
然而,这只是一个猜测尝试,因为ParameterizedTestCase它不是 1.12.1 旧版本的一部分,也不是最近版本的一部分(宏也是如此CPPUNIT_TEST_ADD),我相信这显然是发布计划中但已中止的内容宏CPPUNIT_TEST_SUITE_PROPERTY在这里仍然毫无用处。也getStringProperty仍然存在,我发现无法正确使用它。
总而言之,这看起来像是一个坏东西,而且显然并不是为了共享设置/拆卸代码,而是为了进行参数化测试(实际上可以通过模板来完成,请参阅这篇文章)。
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |