我的组织正在使用CppUnit,我正在尝试使用不同的参数运行相同的测试.在测试中运行循环不是一个好选择,因为任何失败都会中止测试.我已经看过TestDecorator
并TestCaller
但也似乎真的适合.代码示例会很有帮助.
在CppUnit中似乎不可能直接参数化测试用例(参见此处和此处).但是,您有几个选择:
RepeatedTest
您可以巧妙地使用内置RepeatedTest
装饰器.这允许测试用例多次运行(尽管没有参数化).
我承认自己从来没有使用过这个,但也许你可以让RepeatedTest
驱动器有一些看门人功能,这会(使用类静态变量,也许?)每次运行都会选择不同的输入.它会依次调用您想要使用该值作为输入进行测试的真实函数.
TestCase
子类CppUnit的SourceForge页面上的一个人声称编写了一个子类TestCase
,它将以任意次数运行特定测试,尽管方式与RepeatedTest
类提供的方式略有不同.可悲的是,海报简单地描述了创建类的动机,但没有提供源代码.但是,有人要求与个人联系以获取更多详情.
最直接(但最不自动化)的方法是创建一个辅助函数,将您想要传递的参数传递给您的"真实"函数,然后有很多单独的测试用例.每个测试用例都会使用不同的值调用辅助函数.
如果您选择上面列出的前两个选项中的任何一个,我会有兴趣了解您的体验.