Тестирование актеров akka с помощью Kotlin и akka-testkit

Пытаюсь поиграться с аккой и котлином. Я использую akka java API. Класс Actor работает нормально. Но я не могу реализовать тестовый сценарий с помощью 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())
                }
            }

Я новичок в Котлине, в чем может быть проблема?


person Kunal Kanojia    schedule 15.08.2016    source источник
comment
Как должен выглядеть код в Scala / Java?   -  person voddan    schedule 15.08.2016
comment
Какую версию Kotlin вы используете? Следующий код (pastebin) отлично компилируется с компилятором Kotlin версии 1.1.0-dev-2222.   -  person awesoon    schedule 15.08.2016
comment
Пользуюсь версией 1.0.3. Код компилируется нормально, но при запуске выдает ошибку. В java это выглядит так: gist.github.com/kunalkanojia/8202d0690208949054ee   -  person Kunal Kanojia    schedule 15.08.2016
comment
проверьте: stackoverflow.com/questions/36525910/   -  person piotrek1543    schedule 15.08.2016


Ответы (1)


Это ошибка компилятора kotlin, исправленная в ветке 1.0.4, исправление доступно в версиях моментальных снимков. Для kotlin 1.0.3 вы можете использовать обходной путь из https://youtrack.jetbrains.com/issue/KT-11833

person Max Kammerer    schedule 15.08.2016