(※ こちらの記事では gtest 1.6.0 を使用しています。)
テストフィクスチャの再利用1
テストフィクスチャは typedef で別名を定義することで、再利用できます。class TestHoge : public ::testing::Test {}; TEST_F(TestHoge, Test) { } typedef TestHoge TestFoo; TEST_F(TestFoo, Test) { }
テストフィクスチャの再利用2
値のパラメータ化テスト用に定義したテストフィクスチャは、通常のテストのテストフィクスチャとして利用できます。class TestHoge : public ::testing::TestWithParam{}; TEST_P(TestHoge, A) { } TEST_F(TestHoge, B) { } INSTANTIATE_TEST_CASE_P(A, TestHoge, ::testing::Range(0, 2));
一部分だけパラメータテストをしたい場合に便利です。
複雑なパラメータの作成
パラメータに乱数を使用したり、複雑な計算結果を利用する場合、パラメータを格納した ::std::vector を返す関数を作成することで、楽に書けます。
::std::vectorMakeParam() { ::std::vector v(10); ::std::mt19937 engine; ::std::uniform_int_distribution dist(0, 1000); ::std::generate(v.begin(), v.end(), [&](){ return dist(engine); }); return v; } INSTANTIATE_TEST_CASE_P(A, TestHoge, ::testing::ValuesIn( MakeParam() ) );
まとめ
以上で、TIPS 終わりです…書き出してから気づきましたが、
なんか、あんま大したこと書いてないですね…
0 件のコメント:
コメントを投稿