2012年9月12日水曜日

Visual Studio 2012: C++ Unit Test Framework で iutest を使う(値のパラメータ化テストに対応)

Visual Studio 11 : C++ Unit Test Framework で Google Test を使ってみた(実験) の続きです。

以前、できなかったことが少しだけできるようになりました。
ただし、今回は iutest のみ対応がほとんどです。(gtest 対応はいずれ…)

テストフィクスチャの使用
TEST マクロに加えて TEST_F も使用できるようになりました。
ただし、SetUpTestCase/TearDownTestCase に対応していません。


~~~ ここから iutest のみの対応 ~~~
ログ出力対応
iutest のログ出力を Visutal Studio の出力ウィンドウに出すようにしました。

値のパラメータ化テスト対応
値のパラメータ化テスト(IUTEST_P)に対応しました。
いくつか制限がありますが、とりあえずテストできるようにはなりました。

  1. SetUpTestCase/TearDownTestCase 非対応
  2. 1つの TEST_METHOD ですべてのパラメータテストを実行する

このテストが、
// Param Test Range
class TestP : public iutest::TestWithParam<int>
{
protected:
    static int a;
    static int b;
public:
    static void SetUpTestCase(void)
    {
        a = 0;
        b = 0;
    }
};
int TestP::a = 0;
int TestP::b = 0;

IUTEST_INSTANTIATE_TEST_CASE_P(TestPInstance, TestP, iutest::Range<int>(0, 10));

IUTEST_P(TestP, TestA)
{
    IUTEST_ASSERT_EQ(a, GetParam());
    ++a;
}

1つの TEST_METHOD にまとまって




実行されます。




今回はここまで。
IUTEST_P のように強引にやれば、型付けテストもできるんじゃないかなと思ってます。
まぁ、できたから何って感じですが・・・

0 件のコメント:

コメントを投稿