当前位置: 首页 > 面试题库 >

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

符功
2023-03-14
问题内容

我有一个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


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

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



 类似资料:
  • 问题内容: 我想为每个特定功能文件指定某些设置和拆卸步骤。我已经看到了允许在每个场景之前执行代码的钩子,并且允许在每个功能之前执行代码的钩子,但是我想指定代码在针对一个特定功能的所有场景下运行之前和之后运行一次。 这可能吗? 问题答案: 你用黄瓜jvm吗?我找到了适合您要求的文章。 http://zsoltfabok.com/blog/2012/09/cucumber-jvm- hooks/ 基本

  • 我有一个cucumber步骤类,我试图为所有场景初始化一个页面模型。所以我添加了一个@Before注释方法: 然后我有一堆依赖于设置loginPage的步骤。例如 我有多个步骤类。上述两种方法都在同一步骤类中。但是,loginPage始终为空。从未调用BeforeSceenario方法。我是否完全误解了@Before的作用?关于如何获得我想要的工作有什么建议吗? 编辑:我还有一个@After注释方

  • 问题内容: 我正在使用集成测试,并且在所有场景都完成后仅需要执行一次代码。 在仔细阅读了一些类似这样的帖子并审查了此报告的问题之后,我已经完成了以下操作: 我认为以这种方式完成的上下文初始化(相当于)很好。但是,尽管它可以正常工作,但我不确定使用模拟是否是一种好的做法。 所以,这些是我的问题: 我应该避免执行吗? 还有其他更好的选择来模拟cumber-jvm中的行为吗? 在此先感谢您的帮助。 问题

  • 问题内容: 在对如何并行运行Cucumber测试用例进行了大量研究之后,我发现以下有关该主题的非常有用的文章: https://www.opencredo.com/2013/07/02/running-cucumber-jvm-tests-in- parallel/ 本文提供了一些很好的信息,可帮助您开始使用多线程环境,其中包括一些可以从Github下载的代码。 https://github.co

  • 我正在尝试修复Spring Batch中的一个问题,这个问题最近一直困扰着我们的系统。我们有一份工作,在大多数情况下都很好。下载和处理数据是一个多步骤的工作。 问题是有时工作会爆棚。也许我们试图连接到的服务器抛出了错误,或者我们在工作进行到一半时关闭了服务器。此时,下次我们的quartz调度程序尝试运行该作业时,它似乎什么也不做。以下是此作业定义的删节版本: 委婉地说,我是Spring Batch