一尘不染

@Before不在Java黄瓜步骤中执行

java

我有一个Cucumber Step类,我正在尝试为所有方案初始化页面模型。所以我添加了一个@Before注释方法:

@Before()
private void beforeScenario() {
    LOGGER.info("Running before!");
    loginPage = BrowserDriver.getPageModel(LoginPage.class);
}

然后,我有了一系列依赖于loginPage设置的步骤。例如

@When("^I click the help link$")
public void I_click_the_help_link() {
    loginPage.clickHelpLink();
}

我有多个Step类。上面的两个方法都在同一Step类中。但是loginPage始终为null。永远不会调用beforeScenario方法。我是否完全误解了@Before是如何工作的?关于如何获得我想要的工作的任何提示?

编辑:我也有一个@After注释的方法,可以按预期在每种情况下运行。

编辑:Pom可以在以下位置看到:http :
//pastebin.com/PJ6qQRK9


阅读 352

收藏
2020-12-03

共1个答案

一尘不染

  1. 确保您使用cucumber.annotation.Before而不是org.junit.Before。黄瓜将不处理JUnit注释。(有关更多信息,请参见此博客文章的“场景挂钩”部分。)

  2. 确保您的@Before方法public不是private

2020-12-03