gpt4 book ai didi

c++ - CPPUnit 中测试套件属性使用的示例是什么? (CPPUNIT_TEST_SUITE_PROPERTY)

转载 作者:可可西里 更新时间:2023-11-01 18:37:33 24 4
gpt4 key购买 nike

我加入了一个使用 CPPUnit 进行单元测试的项目,并将添加一些可能共享设置和拆卸代码的测试。在对此进行更多研究时,我遇到了

CPPUNIT_TEST_SUITE_PROPERTY

(来自 https://people.freedesktop.org/~mmohrhard/cppunit/group___writing_test_fixture.html)

它的描述说

Adds a property to the test suite builder context.

http://cppunit.sourceforge.net/doc/cvs/group___writing_test_fixture.html说如下:

Adds a property to the test suite builder context

我不确定它的预期用途或目的是什么,尽管它看起来可能对共享公共(public)信息等有用。我不知道看不到它的使用示例。

这有什么值(value)?是否有一些示例可以指出?

最佳答案

根据 this piece of code ,看起来您应该能够在创建测试套件时的某个时刻检索该属性,以将其作为参数传递给特定测试。

也许目标是让你做:

#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 );

这将结束对 func("foo")func("bar") 的调用。这会很好,因为它可以添加字符串参数化测试。

但是,这只是一次猜测尝试,因为ParameterizedTestCase 不是 1.12.1 旧版本的一部分,也不是更多 recent releases 的一部分。 (CPPUNIT_TEST_ADD 宏也是如此),我相信这显然是发布计划中的内容,但已中止,宏 CPPUNIT_TEST_SUITE_PROPERTY 在这里仍然无用。 getStringProperty 也保留了下来,我发现它无法正常使用。

总而言之,这看起来像是一个破烂的东西,无论如何显然不是为了共享设置/拆卸代码,而是为了进行参数化测试(实际上可以通过模板完成,参见 this post )。

关于c++ - CPPUnit 中测试套件属性使用的示例是什么? (CPPUNIT_TEST_SUITE_PROPERTY),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41986088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com