2017-09-21 1 views
1

私はテストのためにC++フレームワークとCatchフレームワークを使用しています。コードの重複なしに複数のデータで条件のセットを満たす必要がある場合、Catchを使用してBDDスタイルのテストケースを作成する適切な方法は何ですか?キャッチを使用したBDDスタイルのテストでの複数のデータの1つのテスト

例として、この試験シナリオを想定:

それが分かるよう
SCENARIO("Test the graph deserialization") { 
    GIVEN("A graph") { 
     Graph g; 
     WHEN("It is loaded by file name") { 
      g.load("small_graph.gf"); 
      THEN("It has correct number of nodes and edges") { 
       REQUIRE(g.node_count() == 210); 
       REQUIRE(g.edge_count() == 306); 
      } 
     } 
     WHEN("It is loaded by input stream") { 
      std::ifstream ifs("small_graph.gf"); 
      g.load(ifs); 
      THEN("It has correct number of nodes and edges") { 
       REQUIRE(g.node_count() == 210); 
       REQUIRE(g.edge_count() == 306); 
      } 
     } 
    } 
} 

THENブロックは冗長です。同じコードをもう一度書くことなく、同じことをする正しい方法は何ですか?

答えて

1

私はメソッドを抽出し、その機能を複製する代わりに、必要なときにいつでも呼び出すことができます。

関連する問題