什么matry依赖对kotlin黄瓜?
我想要使用kotlin本地步骤定义, 如 :
package cucumber.runtime.kotlin.test; ... class LambdaStepdefs : En { init { Before { scenario: Scenario -> assertNotSame(this, lastInstance) lastInstance = this } Given("^this data table:$") { peopleTable: DataTable -> val people = peopleTable.asList(Person::class.java) assertEquals("Aslak", people[0].first) assertEquals("Hellesøy", people[0].last) }
凡Given
function,而不是一个注释。 我不想使用像@Given("blabla") void blabla() { ... }
的Java风格@Given("blabla") void blabla() { ... }
。
我试图从示例中导入包:
package vc.capper.cutest; import cucumber.runtime.kotlin.test class SomeStepDefs { Given("blabla") { } }
但是在kotlin
中找不到包kotlin
。
我认为io.cucumber:cucumber-jvm
(神器)[ https://github.com/cucumber/cucumber-jvm/blob/master/pom.xml]带有cucumber-kotlin-java8
,但是它不是或者它不包含说Given
。
这是我的pom.xml
一个摘录 – 我想,有些缺失,但是什么?
序幕:
1.8 1.1.2-2 1.5.7.RELEASE 2.0.1 org.springframework.boot ...
依赖关系:
io.cucumber cucumber-jvm ${cucumber.version} pom io.cucumber cucumber-spring ${cucumber.version} io.cucumber cucumber-junit ${cucumber.version} test org.jetbrains.kotlin kotlin-stdlib-jre8 ${kotlin.version} ...
更新和澄清:
似乎缺少的包是cucumber.runtime.kotlin
和cucumber.api.java8.En
,你可以从IntelliJ屏幕截图中看到:
你也可以看到项目使用的实际依赖项列表:
看起来Given
并不是Kotlin特定的DSL /方法。 它是cucumber.api.java8.En
的一部分。 所有你需要做的就是从你的课程扩展:
package vc.capper.cutest; import cucumber.runtime.kotlin.test import cucumber.api.java8.En class SomeStepDefs : En { Given("blabla") { ... } }