我使用UnitTest++对C++代码进行单元测试。
在我的测试中,有一组测试我重复了几次。我想要的是实用程序函数来执行这些测试。简而言之,我想说的是:
TEST( foo ) {
Foo one;
Foo two;
// init one & two
// lots of CHECK_CLOSE(one.bar, two.bar, 1e-5); in repeating cycles
}
TEST( bar ) {
Foo one;
Foo two;
// init one & two
// lots of CHECK_CLOSE(one.bar, two.bar, 1e-5); in repeating cycles
}然后用这个:
void blah( const Foo& one, const Foo& two ) {
// lots of CHECK_CLOSE(one.bar, two.bar, 1e-5);
}
TEST( foo ) {
Foo one;
Foo two;
// init one & two
blah(one, two);
}
TEST( bar ) {
Foo one;
Foo two;
// init one & two
blah(one, two);
}由于UnitTest++的宏操作,这是行不通的。解决这个问题的最好方法是什么?
编辑:一些我现在无法检查的想法。
struct中的实用程序函数的夹具,我能从这个函数中调用UnitTest++宏吗?发布于 2009-05-11 13:58:11
写一个宏来完成它。不要让“宏是邪恶的”咒语掩盖了这个事实:宏是为生成重复代码而设计的。
发布于 2009-03-23 07:35:19
我建议不要这样做,因为所发生的是丢失了大量关于哪个测试失败的信息,包装器函数现在包含了两个或多个测试的功能,所以当它失败时,您必须追溯到底是什么原因导致了测试失败。
发布于 2009-03-23 08:52:53
使您的通用检查函数返回bool。然后在每个测试中检查或断言您的公共功能的结果。
https://stackoverflow.com/questions/672392
复制相似问题