1

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

#include <UnitTest++.h>

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

TEST_FIXTURE(SomeFixture, FirstTest) {
}

TEST_FIXTURE(SomeFixture, SecondTest) {
}

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

4

2 回答 2

6

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

于 2010-04-19T00:35:09.910 回答
2

拥有夹具的全部意义在于设置/拆卸代码只发生一次

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

于 2010-04-19T00:34:59.940 回答