gpt4 book ai didi

java - 使用 Cucumber 在一次测试中运行包含更多数据行的示例

转载 作者:行者123 更新时间:2023-12-02 12:24:20 25 4
gpt4 key购买 nike

我有4个场景,例如:

Scenario: test single unit transaction
Given Scene is set
When We did something
Then
| header1 | unit | etc. |
| data1 | data2 | ... |

Scenario: test multiple unit transaction
Given Scene is set
When We did something
Then
| header1 | unit | etc. |
| data1 | data2 | ... |
| data3 | data4 | ... |

Scenario: test single percentage transaction
Given Scene is set
When We did something
Then
| header1 | percentage | etc. |
| data1 | data2 | ... |

Scenario: test multiple percentage transaction
Given Scene is set
When We did something
Then
| header1 | percentage | etc. |
| data1 | data2 | ... |
| data3 | data4 | ... |

它们更复杂、更长,所以我想实现这样的目标:

Scenario Outline: test transactions
Given Scene is set
When We did something
Then
| header1 | unit | etc. |
| <data1> | <data2> | ... |
Examples: single transaction
| header1 | unit | etc. |
| data1 | data2 | ... |

Examples: multiple transaction
| header1 | unit | etc. |
| data1 | data2 | ... | --------> these should run together in one test
| data3 | data4 | ... | -------->

其他类型的交易也是如此。

不幸的是,Cucumber 继续将上述情况作为 3 个不同的场景运行,而不是 2 个,而第二个场景有 2 个事务。有谁知道如何让它发挥作用吗?

非常感谢。

最佳答案

据我所知,当将 Scenario OutlineExamples 一起使用时,它将运行您在示例表中定义的尽可能多的行,因此 Cucumber 可以正常工作你的例子。

不确定您在这些场景中要做什么,但如果您想使用场景大纲,我认为您需要重组示例 你可以尝试这样的事情(未经测试,它可能会变得更复杂):

场景:

Scenario: test transactions
Given the scene is set
When we did something
Then something should happen:
| header1 | unit |
| data1 | data2 |
| data3 | data4 |

步骤:使用数据类:

@Then("^something should happen:$")
public void explosionsHappen(List<Data> entries) {
for (Data entry : entries) {
//Do stuff to each entry without restarting the scenario
}
}

public class Data {
String header1;
Integer unit;
}

使用数据表:

@Then("^something should happen:$")
public void explosionsHappen(DataTable data) throws Throwable {
for (Map<String, Integer> data : data.asMaps(String.class, Integer.class)) {
//Write code to handle Datatable
}
}

更多相关信息herehere 。对于第二个链接,请浏览功能/步骤并检查它们是如何实现的。

可能还有其他方法可以实现您想要的功能。希望这有帮助!

关于java - 使用 Cucumber 在一次测试中运行包含更多数据行的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45555425/

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