タグ

ブックマーク / nobu-q.hatenadiary.org (2)

  • googlegtestのType Parameterized Testsも便利すぎる件 - nobu-qの日記

    前回のValue Parameterized Testsに続き、今回はType Parameterized Testsというのを紹介したいと思います。コードがコンパイルできなかったらタイポしてるので家の方を見てね。 Type Parameterized Testsとは Type Parameterized Tests(勝手にTPTと略します)とは、複数の型に対するテストコードを生成するための機能です。Value Parameterized Testsの型バージョンと思えばOKです。 例えばstd::vectorのユニットテストを考えます。 TEST(VectorTest, push_test) { vector<int> v; vにいろいろ }このとき、vectorにはいろいろな型を入れてテストをしてみたいですね。そうなると今までは TEST(VectorTest, int_push_t

    googlegtestのType Parameterized Testsも便利すぎる件 - nobu-qの日記
  • google-gtestのValue-Parameterized Testsが便利過ぎる件 - nobu-qの日記

    google-gtestにいつの間にかValue-Parameterized Tests(VPTと勝手に略します)という機能が追加されていました。 以前のgtestでは、実行される度に特定の値を変更しながらテストすることが面倒でした。例えば、boolのフラグを持っており、それがtrueかfalseかで挙動が変わるようなケースです。そのようなテストケースを書きたかったら、次のようにヘルパ関数を用意するか、テストをコピペして値を変更するなどの処理を書く必要がありました。 TEST(HogeTest, hogehoge) { hogeHelper(true); // trueでテスト hogeHelper(false); // falseでテスト }前者では問題が発生した時に異なるテストが同じ行番号を出力するため、問題の把握がしづらくなります。また、TESTがたくさんあった場合、それぞれにヘルパ

    google-gtestのValue-Parameterized Testsが便利過ぎる件 - nobu-qの日記
  • 1