我想为下面的场景运行一次后台,这样在执行时,它不应该再次返回用户登录屏幕。
我发现了一些回复,其中说这是黄瓜的工作方式,但找不到任何替代方法。
处理此问题的最佳方法是什么?如果有人可以为此分享示例代码。
e.g。
Background:
Given User logs into the application and on the home page
Scenario outline:
When user fills the form "<FName>" and "<LName>"
And click on submit button
Then Result should display
Examples:
|FName|LName |
|Abc | XYZ |
|Tom | Anderson |
答案 0 :(得分:2)
处理此问题的最佳方法是不要这样做。 Cucumber就是这样设计的原因。如果你采用这种方法,特别是如果你广泛使用它,你将最终得到一些功能,这些功能经常以非常奇怪的方式打破,因为在以前的场景中发生了什么。例如,在您当前的示例中,如果填写表单并没有将您带回到可以填写表单的位置,则第二个示例将因为您不在正确的位置而失败。
答案 1 :(得分:1)
您需要在包含匹配的后台步骤定义的类中设置静态标志。最初将其设置为false(如果您愿意,则为true)。在步骤定义中创建if条件以检查标志的值。将其设置为相反的值,并将所需的操作放在if条件中。这应该只在第一次执行。
private static boolean flag = false;
@Given("^User Logs In$")
public void userLogsIn() {
if(flag==false) {
flag=true;
//Place the code you want to run only for first time
}
}