Cucumber Cumber jvm'的预期用途如何;s"@“之前”;不同于;给定的“;?

Cucumber Cumber jvm'的预期用途如何;s"@“之前”;不同于;给定的“;?,cucumber,bdd,cucumber-jvm,Cucumber,Bdd,Cucumber Jvm,它们都用于满足测试的先决条件。我真的不知道什么时候应该使用@Before(cumber.api.java.Before)或者什么时候应该使用@Given(cumber.api.java.en.Given)。什么时候我更喜欢/使用一个而不是另一个?use@Before,如果需要建立某个状态才能成功运行测试场景,并且业务所有者不需要知道此步骤。 Before更多地是在幕后进行的,没有太多的商业意识,也不需要让企业主看到。例如,“设置变量、清理cookies等” 另一方面,给定的是您希望在测试场景中可

它们都用于满足测试的先决条件。我真的不知道什么时候应该使用@Before(cumber.api.java.Before)或者什么时候应该使用@Given(cumber.api.java.en.Given)。什么时候我更喜欢/使用一个而不是另一个?

use@Before,如果需要建立某个状态才能成功运行测试场景,并且业务所有者不需要知道此步骤。 Before更多地是在幕后进行的,没有太多的商业意识,也不需要让企业主看到。例如,“设置变量、清理cookies等”


另一方面,给定的是您希望在测试场景中可见的步骤。比如说,“我登录到这个应用程序”这类步骤对商界来说很有意义。

我通常使用@Before在日志中打印场景名称。因为@Before在每个场景之前运行,所以我只向任何功能文件添加一次代码,然后它在每个场景之前打印出场景名称。这样更容易跟踪正在执行的场景。代码-

@Before
public void before(Scenario scenario) {
    System.out.println("------------------------------------------");
    System.out.println("Starting -> " + scenario.getName()); 
    System.out.println("------------------------------------------");
}
@之后也可以用同样的方法。@After的另一个用法是使用scenario.getStatus()方法打印场景状态