当前位置: 首页 > 知识库问答 >
问题:

junit cucumber缺失步骤错误

充鑫鹏
2023-03-14

Java-Cucumber示例

看起来我缺少步骤,它是抱怨缺少步骤,并认为它们是未定义的

.功能文件:

Feature: Roman Feature

  Scenario: Convert Integer to Roman Number
  Given I am on the demo page
  When I pass number 1
  Then the roman result is I


  Scenario: Convert Integer to Roman Number
  Given I am on the demo page
  When I pass number 5
  Then the roman result is V
@When("^I pass number (\\d+)$")
    public void convert_numbers_to_roman(int arg1) throws Throwable {
       // convert number

    }



@Then("^the roman result is (\\d+)$")
    public void the_roman_result_is(int result) throws Throwable {
        // match result
    }
  Scenario: Convert Integer to Roman Number [90m# net/xeric/demos/roman.feature:3[0m
    [32mGiven [0m[32mI am on the demo page[0m             [90m# DemoSteps.i_am_on_the_demo_page()[0m
    [32mWhen [0m[32mI pass number [0m[32m[1m1[0m                    [90m# DemoSteps.convert_numbers_to_roman(int)[0m
    [33mThen [0m[33mthe roman result is I[0m
@Then("^the roman result is I$")
public void the_roman_result_is_I() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

共有1个答案

韦修文
2023-03-14

我会考虑将罗马数作为字符串捕获,因此使用正则表达式(.*)

然后步骤如下所示:

@Then("^the roman result is (.*)$")
public void the_roman_result_is_I(String expectedRoman) throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

这与塞巴斯蒂安的答案相似,但在我看来,是一个更简单的正则表达式。它捕获任何字符串并将其作为参数传递。

 类似资料:
  • 我已经使用Cypress创建了一些cucumber场景到一个特性文件中。如果我知道正确的话,特性文件和规范文件应该在同一个文件夹下。当我将测试运行到测试运行器中时,一切正常。但是我已经用相同的场景创建了第二个特性,当我尝试运行它时,我收到了这个错误“错误:步骤实现缺失”(错误:Step implementation missing for)。我不明白为什么:-?? 贝嫂我附上几张截图:

  • 在VM上,当试图使用ChromeDriver和WebDriverManager启动Chrome浏览器时,在LaunchChromeDriver方法测试失败,在步骤new ChromeDriver(选项)中失败为“访问被拒绝”; 该方法如下所示: 我是遗漏了什么还是需要修改代码?有人经历过同样的事情吗? 获取如下所示的异常: System.ComponentModel.Win32Exception(

  • 我想在每个步骤之前和之后执行一些操作(而不是场景)。用cucumber怎么做? 就像jUnit中的后和前。 **我正在使用java。

  • 我可以在xml配置中使用而没有任何问题,但如果将其用作如下注释。它会抛出以下错误 原因:组织。springframework。豆。工厂UnsatisfiedDependencyException:创建在类路径资源[BatchConfiguration.class]中定义的名为“step1”的bean时出错:通过索引1为[org.springframework.batch.item.ItemRead

  • 我的操作系统是Debian10(Buster),4.19内核,Tomcat9似乎不稳定。 我不希望在运行'SystemCTL status tomcat9.service'命令时看到任何错误消息。 但是,'systemCTL status tomcat9.service'命令是打印错误消息。 然而,尽管有错误消息,我已经确认网页工作正常。 我不知道为什么会这样。 我试图解决这个问题。 shutdo

  • Steps 步骤条 引导用户按照流程完成任务的分步导航条,可根据实际应用场景设定步骤,步骤不得少于 2 步。 基础用法 简单的步骤条。 :::demo 设置active属性,接受一个Number,表明步骤的 index,从 0 开始。需要定宽的步骤条时,设置space属性即可,它接受Boolean,单位为px,如果不设置,则为自适应。设置finishStatus属性可以改变已经完成的步骤的状态。