黄瓜-jvm的“@Before”的预期用法与“给定”有何不同?

时间:2014-03-07 01:56:01

标签: cucumber bdd cucumber-jvm

它们都用于满足测试的前提条件。我不知道什么时候应该使用@Before(cucumber.api.java.Before)或者什么时候应该使用@Given(cucumber.api.java.en.Given)。我应该何时更喜欢/使用其中一个?

2 个答案:

答案 0 :(得分:0)

使用@Before,如果需要为测试场景建立某个状态才能成功运行,并且业务所有者无需了解此步骤。 以前是比幕后更多的幕后花絮,并没有太多的商业意识,也不需要对企业主可见。例如,“设置变量,清理cookies ..等等”。

另一方面,考虑到您希望在测试场景中显示的步骤。说,“我登录到这个应用程序”是一种对商业世界有意义的步骤。

答案 1 :(得分:0)

我主要使用@Before在日志中打印出方案名称。由于@Before在每个场景之前运行,因此我只将代码添加到任何特征文件一次,然后在每个场景之前打印出场景名称。这样就可以更容易地跟踪正在执行的场景。代码 -

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