1

私はUnitTest++でいくつかの単体テストを書いていますが、いくつかの共通のリソースを共有する一連のテストを書きたいと思っています。これはTEST_FIXTUREセットアップで機能するはずだと思いましたが、テストごとに新しいフィクスチャを構築しているようです。サンプルコード:

#include <UnitTest++.h>

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

TEST_FIXTURE(SomeFixture, FirstTest) {
}

TEST_FIXTURE(SomeFixture, SecondTest) {
}

私は何か間違ったことをしているに違いないと感じています。フィクスチャを持つことの全体的なポイントは、セットアップ/ティアダウンコードが1回だけ発生するようにすることだと思っていました。私はこれについて間違っていますか?それをそのように機能させるために私がしなければならないことが他にありますか?

4

2 に答える 2

6

テストフィクスチャのポイントは、状態を共有するのではなく、すべてのテストで同じセットアップ/ティアダウンコードを記述する必要がないことです。状態を共有する場合は、テストで静的フィールドと静的関数を使用してクラスを参照するだけで、TEST_FIXTUREの代わりに標準のTESTマクロを使用できます。

于 2010-04-19T00:35:09.910 に答える
2

フィクスチャを持つことの全体的なポイントは、セットアップ/ティアダウンコードが1回だけ発生するようにすることでした

いいえ、フィクスチャの全体的なポイントは、フィクスチャがすべてのテストで繰り返されることです。あなたが見ているものは期待され、正しい振る舞いです。

于 2010-04-19T00:34:59.940 に答える