有人可以告诉我如何在Kotlin中对扩展功能进行单元测试吗?由于它们是静态解析的,应该将它们作为静态方法调用还是作为非静态方法进行测试?另外,由于语言可以与Java完全互操作,因此应如何针对Kotlin扩展功能执行Java单元测试?
好吧,要测试一种方法(无论是否静态),您可以像实际代码那样调用它,并检查它是否做对了。
例如,假设此扩展方法在文件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);
有人能告诉我该如何在Kotlin中对扩展函数进行单元测试吗?由于它们是静态解析的,应该将它们测试为静态方法调用还是非静态方法调用?另外,由于语言与Java是完全可互操作的,那么应该如何执行Kotlin扩展函数的Java单元测试呢?
问题内容: 我还很陌生,因此无法找到任何文档或示例。我要做的是扩展基本服务,以便可以使用其他服务在基本服务下定义的方法。例如,说我有如下基本服务。 现在,我想定义一个从上述扩展的扩展服务,以便可以使用扩展服务中BasicService下定义的方法。也许像这样: 问题答案: 您应该注入以便能够访问它。旁边是对象文字,因此您实际上不能将其称为函数()。
JUnit5API中有几个可用的扩展点。 null 我可以使用相同的模式,因为上的可见性。 下面有几个具体的例子来演示: > 基于系统属性启用测试的。这可以通过一些反射和使用或样式的进行测试,但是当并行测试执行时,处理起来似乎更加复杂,可能会出现问题。此示例展示了“如何提供实际的并对结果进行断言”的示例。 扩展测试的自定义测试引擎是正确的方法吗? 那么,如何测试各种扩展实现而不依赖于内部API,并
问题内容: 是否可以从Java代码访问扩展功能? 我在Kotlin文件中定义了扩展功能。 (生成的)java类在哪里。现在,我想用普通的Java代码访问它: 但是,这不起作用。 IDE无法识别该方法,并且编译失败。 起作用的是与kotlin的静态函数一起使用: 通过使用我的IDE似乎已正确配置。 我从kotlin文档中搜索了整个Java互操作文件,并且在谷歌上搜索了很多,但是找不到。 我究竟做错了
主要内容:扩展函数,扩展函数是静态解析的,伴生对象的扩展,扩展的作用域,扩展声明为成员Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式。 扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响。 扩展函数 扩展函数可以在已有类中添加新的方法,不会对原类做修改,扩展函数定义形式: receiverType:表示函数的接收者,也就是函数扩展的对象 functionName:扩展函数的名称 params:扩展函数的参数,可以为NULL 以下实
Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式。 扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响。 扩展函数 扩展函数可以在已有类中添加新的方法,不会对原类做修改,扩展函数定义形式: fun receiverType.functionName(params){ body } receiverType:表示函数的接收者,也就是函数扩