【问题标题】:UnitTest++ constructing fixtures multiple times?UnitTest++ 多次构造夹具?
【发布时间】:2011-02-09 12:16:01
【问题描述】:

我正在用 UnitTest++ 编写一些单元测试,并想编写一堆共享一些公共资源的测试。我认为这应该通过他们的 TEST_FIXTURE 设置来工作,但它似乎正在为每个测试构建一个新的夹具。示例代码:

#include <UnitTest++.h>

struct SomeFixture {
    SomeFixture() {
        // this line is hit twice
    }
};

TEST_FIXTURE(SomeFixture, FirstTest) {
}

TEST_FIXTURE(SomeFixture, SecondTest) {
}

我觉得我一定做错了什么;我曾认为拥有夹具的全部意义在于设置/拆卸代码只发生一次。我错了吗?我还需要做些什么才能让它以这种方式工作吗?

【问题讨论】:

    标签: c++ unit-testing unittest++


    【解决方案1】:

    测试夹具的意义在于不必在每个测试中编写相同的设置/拆卸代码,而不是共享状态。如果你想共享状态,那么你可以在你的测试中简单地引用一个带有静态字段和静态函数的类,然后你可以使用标准的 TEST 宏而不是 TEST_FIXTURE。

    【讨论】:

    • 好的,如果它应该是这样工作的。我承认有点失望。我不认为 TEST_FIXTURE 这样对我有用,但我想我必须忍受它。无论如何,谢谢你清理它:)
    【解决方案2】:

    拥有fixture的重点是设置/拆卸代码只发生一次

    不,夹具的全部意义在于每次测试都要重复夹具。您看到的是预期的正确行为。

    【讨论】:

      猜你喜欢
      • 2018-01-31
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 2012-09-24
      • 1970-01-01
      相关资源
      最近更新 更多