我在UnitTest ++中编写了一些单元测试,并希望编写一些共享一些公共资源的测试。我认为这应该通过他们的TEST_FIXTURE设置工作,但似乎是为每个测试构建一个新的夹具。示例代码:
#include <UnitTest++.h>
struct SomeFixture {
SomeFixture() {
// this line is hit twice
}
};
TEST_FIXTURE(SomeFixture, FirstTest) {
}
TEST_FIXTURE(SomeFixture, SecondTest) {
}
我觉得我一定做错了;我曾经认为拥有夹具的重点是设置/拆卸代码只发生一次。我错了吗?还有什么我需要做的才能让它以这种方式运作吗?
答案 0 :(得分:6)
测试夹具的要点是不必在每次测试中编写相同的设置/拆卸代码,而不是共享状态。如果你想共享状态,那么你可以在测试中简单地引用一个带静态字段和静态函数的类,然后你可以使用标准的TEST宏而不是TEST_FIXTURE。
答案 1 :(得分:2)
拥有夹具的重点是设置/拆卸代码只发生一次
不,固定装置的重点是每次测试都要重复固定装置。您所看到的是预期和正确的行为。