【发布时间】:2017-02-21 22:46:08
【问题描述】:
谁能告诉我应该如何在 Kotlin 中对扩展函数进行单元测试?由于它们是静态解析的,应该将它们作为静态方法调用还是非静态进行测试?此外,由于语言可以与 Java 完全互操作,应该如何对 Kotlin 扩展功能进行 Java 单元测试?
【问题讨论】:
标签: java unit-testing testing kotlin language-interoperability
谁能告诉我应该如何在 Kotlin 中对扩展函数进行单元测试?由于它们是静态解析的,应该将它们作为静态方法调用还是非静态进行测试?此外,由于语言可以与 Java 完全互操作,应该如何对 Kotlin 扩展功能进行 Java 单元测试?
【问题讨论】:
标签: java unit-testing testing kotlin language-interoperability
好吧,要测试一个方法,无论是否是静态的,您都可以像实际代码一样调用它,并检查它是否正确。
假设这个扩展方法,例如,在文件 com/foo/Bar.kt 中定义:
fun String.lengthPlus1(): Int {
return this.length + 1
}
如果你用 Kotlin 编写测试(你通常会这样做来测试 Kotlin 代码),你会编写
assertThat("foo".lengthPlus1()).isEqualTo(4);
如果你用 Java 编写它(但你为什么要这样做?)
assertThat(BarKt.lengthPlus1("foo")).isEqualTo(4);
【讨论】: