Kotlin的黄瓜:步骤定义重复的问题

问题描述 投票:2回答:1

在将Som Java步骤定义转换为Kotlin之后,我得到了“重复步骤定义”。 Jenkins将以下步骤定义标识为重复项:

@Given("^that \"([^\"]*)\" is a case in city \"([^\"]*)\" to buy a specific house with code$")
fun theCaseIsACaseInCityToBuySpecificHouseWithCode(caseTag: String, city: String) {

@Given("^that \"([^\"]*)\" is a case in city \"([^\"]*)\" to buy a specific house$")
fun theCaseIsACaseInCityToBuySpecificHouse(caseTag: String = "case", city: String = "5035") {

Jenkins声称的错误消息:

cucumber.runtime.DuplicateStepDefinitionException:
Duplicate step definitions in void e2e.case.CreateCaseSteps
.theCaseIsACaseInCityToBuySpecificHouse(String,String)
in file:/tmp/workspace/EST_cases_PR-12432/e2e/cucumber/target/test-classes/
and
e2e.case.CreateCaseSteps.theCaseIsACaseInCityToBuySpecificHouse
$default(OpprettSakSteps,String,String,int,Object)

我也看到过与Java类似的问题,但是我似乎想起了这个问题,即最后一个“ $”缺失了,因此第二行将“等于”第一行。

在Kotlin中,问题似乎出在其他方面。

有什么想法吗?周围似乎没有太多有关黄瓜和科特林的信息。

kotlin cucumber
1个回答
0
投票

由于显然几乎没有人使用kotlin和黄瓜,我将分享经过测试,测试和测试后发现的东西:

黄瓜无法使用默认参数值处理步骤定义

我知道Cucumber无法利用默认参数值,但我不认为仅在其中使用默认参数值会导致看似完全虚假的错误(重复的步骤定义)。但是,确实如此。我有几个步骤定义方法,其他步骤定义方法也使用了这些方法。对于这些用户,使用默认参数值很有意义,并且可以创建更整洁的代码。但是,可惜,当涉及到黄瓜时,它是行不通的。

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