首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UnitTest++中使用实用程序函数?

如何在UnitTest++中使用实用程序函数?
EN

Stack Overflow用户
提问于 2009-03-23 06:26:38
回答 3查看 921关注 0票数 0

我使用UnitTest++对C++代码进行单元测试。

在我的测试中,有一组测试我重复了几次。我想要的是实用程序函数来执行这些测试。简而言之,我想说的是:

代码语言:javascript
复制
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
}

然后用这个:

代码语言:javascript
复制
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++的宏操作,这是行不通的。解决这个问题的最好方法是什么?

编辑:一些我现在无法检查的想法。

  1. ,如果我使用一个带有struct中的实用程序函数的夹具,我能从这个函数中调用UnitTest++宏吗?
  2. ,我可以编写一个宏来执行常见的测试。我不太喜欢这个,但至少我会.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-11 13:58:11

写一个宏来完成它。不要让“宏是邪恶的”咒语掩盖了这个事实:宏是为生成重复代码而设计的。

票数 2
EN

Stack Overflow用户

发布于 2009-03-23 07:35:19

我建议不要这样做,因为所发生的是丢失了大量关于哪个测试失败的信息,包装器函数现在包含了两个或多个测试的功能,所以当它失败时,您必须追溯到底是什么原因导致了测试失败。

票数 0
EN

Stack Overflow用户

发布于 2009-03-23 08:52:53

使您的通用检查函数返回bool。然后在每个测试中检查或断言您的公共功能的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/672392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档