gpt4 book ai didi

c++ - 使用 Catch 在 BDD 样式测试中对多个数据进行一次测试

转载 作者:行者123 更新时间:2023-11-30 05:09:07 26 4
gpt4 key购买 nike

我正在使用 C++ 和 Catch 框架进行测试。当应该在多个数据上满足一组条件而不重复代码时,使用 Catch 以 BDD 风格编写测试用例的正确方法是什么?

例如,假设这个测试场景:

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 block 是多余的。在不再次编写相同代码的情况下执行相同操作的正确方法是什么。

最佳答案

我会提取一个方法并在需要时调用它,而不是复制功能。

关于c++ - 使用 Catch 在 BDD 样式测试中对多个数据进行一次测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46345397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com