2016-08-15 4 views
1

Я пытаюсь поиграть с аккой и котлином. Я использую API-интерфейс akka java. Класс Actor отлично работает. Но я не могу реализовать тестовый файл с помощью Akka-testkit.Тестирование аккских актеров с участием Котлина и Акка-Тесткита

Это мой TestCase,

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()) 
       } 
      } 

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

+0

Как код должен выглядеть в Scala/Java? – voddan

+0

Какую версию Kotlin вы используете? Следующий код ([pastebin] (http://pastebin.com/kxSD8ZBY)) компилируется с помощью компилятора Kotlin версии 1.1.0-dev-2222 – soon

+0

Am, используя версию 1.0.3. Код компилируется отлично, но при запуске он выдает ошибку. И это выглядит так: java - https://gist.github.com/kunalkanojia/8202d0690208949054eee8b88cec8da2 –

ответ

2

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

Смежные вопросы