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
ブロックは冗長です。同じコードをもう一度書くことなく、同じことをする正しい方法は何ですか?