我应该如何测试 Kotlin 扩展函数?

有人可以告诉我我应该如何在Kotlin中对扩展函数进行单元测试吗?由于它们是静态解析的,因此应该将它们作为静态方法调用还是作为非静态进行测试?此外,由于语言与Java完全可互操作,因此应该如何执行Kotlin扩展函数的Java单元测试?


答案 1

好吧,要测试一个方法,无论是否是静态的,你都可以像实际代码一样调用它,并检查它是否做了正确的事情。

例如,假设此扩展方法是在文件 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);

答案 2

推荐