Bdd黄瓜问题

问题描述 投票:0回答:3

我最近开始研究 BDD Cucumber。我正在使用 scala 来编写测试用例。我正在尝试使用场景大纲并在步骤定义中传递参数。我的代码如下。

Scenario Outline:  Data is parsed and persisted
    Given Portal is running
    When A data of <type> is received
    Then The data of <type> with <Id> should be parsed and persisted

  

      Examples:
        | type        | Id  |
        | Personal    | 1   |
        |Professional | 2   |

现在在我的条件下,我尝试按如下方式获取这些参数

When("""^A data of \"([^\"]*)\" is received$""") {
(type: String) => 
//My code
}

现在运行我的代码时,我每次都会收到以下错误。

io.cucumber.junit.UndefinedStepException: The step "A data of Personal is received" is undefined. You can implement it using the snippet(s) below:

When("""A data of Personal is received""") { () =>
  // Write code here that turns the phrase above into concrete actions
  throw new io.cucumber.scala.PendingException()
}

虽然我什么时候有我的代码。另外,如果我不使用场景大纲,那么它工作正常,但我想在我的代码中使用场景大纲。

  1. 我在功能文件中使用标签来运行我的测试用例。当我使用命令 sbt test @tag1 运行测试用例时,测试用例执行正常,但是当所有测试用例在 cmd 上完成运行时,我收到以下错误:

     [error] Expected ';'
    
     [error] @tag1 
    

我尝试输入“;”标签后但仍然出现相同的错误 这是什么问题以及如何解决?

  1. 我的应用程序中有 4-5 个功能文件。这意味着 4-5 个标签。截至目前,我要运行的测试用例给出了功能文件的路径,并将其与我的 Runner 类中的步骤定义“粘合”。如何在 Runner 类中提供所有标签,以便我的应用程序在启动时一一运行所有测试用例?
scala cucumber bdd cucumber-junit
3个回答
0
投票

您缺少

<type>
周围的双引号:

When A data of "<type>" is received

0
投票

只是一些一般性建议。

在做cuking时让事情尽可能简单,注重清晰度和简单性,不要担心重复。

如果你写了 2 个简单的场景,你的任务会简单得多

Scenario: Personal data
  Given Portal is running
  When personal data is received
  Then personal data should be persisted

Scenario: Professional data
  ...

其次,不要使用标签来运行你的功能,你还不需要标签。

如果您避免场景轮廓、正则表达式、标签、转换等,您可以更有效地进行操作。Cucumber 的主要功能是使用自然语言来清晰地表达自己。专注于这一点并保持简单......


0
投票

我无法将标签名称放入测试运行程序类中。将标签名称放入测试运行程序类后,它显示编译时错误

© www.soinside.com 2019 - 2024. All rights reserved.