我尝试使用kotlin进行我的测试,使用serenity-bed框架,但这不起作用 例如
public class EndUserSteps {
var dictionaryPage: DictionaryPage = null!!
@Step
fun enters(keyword: String) {
dictionaryPage.enter_keywords(keyword)
}
@Step
fun starts_search() {
dictionaryPage.lookup_terms()
}
@Step
fun should_see_definition(definition: String) {
assertThat(dictionaryPage.definitions, hasItem(containsString(definition)))
}
@Step
fun is_the_home_page() {
dictionaryPage.open()
}
@Step
fun looks_for(term: String) {
enters(term)
starts_search()
}
}
其他代码用Java编写!
输出: (net.serenitybdd.core.exceptions.StepInitialisationException:无法为EndUserSteps创建步骤库:无法继承最终类类ru.tinkoff.atesting.steps.serenity.EndUserSteps)
你可以帮帮我吗? 有什么想法吗?答案 0 :(得分:4)
在Kotlin课程中don't allow subclassing by default(相当于Java的final
)。要允许子类化,您需要将它们标记为open
。 (open class X
)
类的开放注释与Java的最终版本相反:它允许其他人继承此类。默认情况下,Kotlin中的所有类都是final,对应于Effective Java,第17项:继承的设计和文档,或者禁止它。 - Kotlin docs