当我第一次执行一个特征文件时,我在运行时更新了它的字段。需要相同字段的值才能传递给其他特征文件。是否可以使用java将一个特征文件的数据传递到另一个特征文件?
feature file 1:
scenario outline: test xxx functionality
Examples :
|user|password|
|abc|pass|
feature file2:
Scenario Outline : test yyy functionality
Examples:
|user|password|
| | |
在这里,我希望将特征file1中存在的数据传递到特征文件2,即abc和pass应复制到特征文件2的示例中。请提前执行suggest.Thanks!!
发布于 2017-10-28 16:47:17
不支持将值从一个功能文件传递到另一个功能文件。它会迫使你以特定的顺序执行你的场景。这是一个众所周知的反模式。您的方案应该可以以任何顺序执行,如果您希望一个方案在另一个方案之前执行,这是不可能的。
那么您应该如何重用第二个功能文件中的第一个功能文件中的设置呢?简短的答案是不要。相反,实现一个帮助器,需要用户设置的功能可以用来准备测试中的系统。在执行之前,从需要此设置的每个场景中调用此帮助器。这听起来可能是许多不必要的工作,但它将使您避免在相互依赖的情况下出现许多问题,并使您的系统在两次执行之间处于意外状态。
发布于 2017-10-27 19:28:44
严格地说,您不应该将数据从一个BDD测试传递到另一个BDD测试。这将违背拥有独立单元BDD测试的目的。一般来说,软件单元测试应该是相互独立的。
也就是说,你当然可以从一个步骤定义中持久化一些状态,然后在另一个步骤中重用它:
@When("^I login with username \"(.*)\"$")
public void enterUsername(String username) {
// do something with username
// make a database call and insert the username in a temporary table
}
然后,在第二个功能文件中,您可以查询相同的表并检索用户名。
这可能不是您想要的,但一般的想法是在第一个测试期间保持一些状态,然后可以在第二个测试中使用。
https://stackoverflow.com/questions/46973879
复制相似问题