使用 Kotlin 和 as-testkit 作为演员进行测试
Testing akka actors with Kotlin and akka-testkit
我正在尝试使用 akka 和 kotlin。我正在使用 akka java API。 Actor class 工作正常。但是我无法用 Akka-testkit 实现测试用例。
这是我的测试用例,
fun testWordCount() {
object : JavaTestKit(system) {
init {
val masterActor = system.actorOf(Props.create(WordCountActor.WordCountMaster::class.java), "master")
masterActor.tell(WordCountActor.StartCounting("src/main/resources/", 5), testActor)
val wcs = expectMsgClass(JavaTestKit.duration("5 seconds"), WordCountActor.WordCountSuccess::class.java)
object : JavaTestKit.Within(JavaTestKit.duration("5 seconds")) {
override fun run() {
Assert.assertEquals(20, wcs.result.size)
}
}
}
}
}
我收到以下错误 -
Error:(39, 17) Kotlin: [Internal Error] org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Error generating constructors of class null with kind IMPLEMENTATION
Cause: Error generating constructors of class null with kind IMPLEMENTATION
File being compiled and position: (39,17) in /Users/kunalkanojia/Workspace/fun/kotlin_word_count/src/test/kotlin/WordCountActorTest.kt
PsiElement: object : JavaTestKit.Within(JavaTestKit.duration("20 seconds")) {
override fun run() {
Assert.assertEquals(20, wcs.result.size.toLong())
}
}
我是 Kotlin 的新手,可能是什么问题?
这是 kotlin 编译器中的一个错误,已在 1.0.4 分支中修复,可在快照版本中修复。
对于 kotlin 1.0.3,您可以使用 https://youtrack.jetbrains.com/issue/KT-11833
中的解决方法
我正在尝试使用 akka 和 kotlin。我正在使用 akka java API。 Actor class 工作正常。但是我无法用 Akka-testkit 实现测试用例。
这是我的测试用例,
fun testWordCount() {
object : JavaTestKit(system) {
init {
val masterActor = system.actorOf(Props.create(WordCountActor.WordCountMaster::class.java), "master")
masterActor.tell(WordCountActor.StartCounting("src/main/resources/", 5), testActor)
val wcs = expectMsgClass(JavaTestKit.duration("5 seconds"), WordCountActor.WordCountSuccess::class.java)
object : JavaTestKit.Within(JavaTestKit.duration("5 seconds")) {
override fun run() {
Assert.assertEquals(20, wcs.result.size)
}
}
}
}
}
我收到以下错误 -
Error:(39, 17) Kotlin: [Internal Error] org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Error generating constructors of class null with kind IMPLEMENTATION
Cause: Error generating constructors of class null with kind IMPLEMENTATION
File being compiled and position: (39,17) in /Users/kunalkanojia/Workspace/fun/kotlin_word_count/src/test/kotlin/WordCountActorTest.kt
PsiElement: object : JavaTestKit.Within(JavaTestKit.duration("20 seconds")) {
override fun run() {
Assert.assertEquals(20, wcs.result.size.toLong())
}
}
我是 Kotlin 的新手,可能是什么问题?
这是 kotlin 编译器中的一个错误,已在 1.0.4 分支中修复,可在快照版本中修复。 对于 kotlin 1.0.3,您可以使用 https://youtrack.jetbrains.com/issue/KT-11833
中的解决方法