kotlin - cucumber 与Kotlin:重复步骤定义存在问题

标签 kotlin cucumber

在将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,这似乎是另一个问题。

有任何想法吗?周围似乎没有太多有关Cucumber和Kotlin的信息。

最佳答案

由于显然几乎没有人使用kotlin和 cucumber ,因此我将分享经过测试,测试和测试的发现:

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

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

关于kotlin - cucumber 与Kotlin:重复步骤定义存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58116273/

相关文章:

kotlin - 测试协程和线程之间的差异,在 kotlin 中使用线程时无法得到 OOM 错误

javascript - 当 bool 结果为 true 时,ElementFinder.filter 函数不返回值

kotlin - 第一次发出 kotlin 协程后,MutableStateFlow 不发出值

kotlin - 用协变类型的 lambda 替换 SAM 构造函数

kotlin - 根据字符串值动态过滤数组列表 - kotlin

android - 上传完成前调用 Firebase Storage onSuccess

ruby-on-rails - Rails 测试中缺少记录

javascript - 在 Cucumber 中测试 JQuery UI slider

cucumber - 使用 javascript 设置 cookie 在 Poltergeist 和/或 PhantomJS 中不起作用

java - 如何在java cucumber中查找步骤定义