我有一个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
确保您使用cucumber.annotation.Before而不是org.junit.Before。黄瓜将不处理JUnit注释。(有关更多信息,请参见此博客文章的“场景挂钩”部分。)
cucumber.annotation.Before
org.junit.Before
确保您的@Before方法public不是private。
public
private