я использую akka testkit и скалярные программы для запуска моего теста, вот мой код
class MyTest extends (ActorSystem("testsystem")) /*with AsyncWordSpec*/ with ImplicitSender with AnyWordSpecLike with Matchers with BeforeAndAfterAll {
"an actor test" must {
val probe = TestProbe()
val myActor1 = TestActorRef[MyActor]
"send back messages " in {
probe.send(myActor1,Found(id = "234"))
probe.expectMsg(true)
//i want to get the future value like this as well
val future = ask(myActor, Found(id = "234")).mapTo[Boolean]
future onComplete {
case Success(somevalue) => info("oncomplete returned result is " + somevalue)
case Failure(ex) =>throw ex
}
}
}
class MyActor extends Actor {
def receive: PartialFunction[Any, Unit] = {
case Found(id) =>
log.info("received message {}", id)
sender() ! true
case message =>
unhandled(message)
}
}
сейчас проблема в том, что приведенный выше код работает нормально, но будущее для полной части когда-нибудь выполняется, а иногда нет при запуске теста для этого я исследовал об асин c тестирования scala и попытаться реализовать примеры http://www.scalatest.org/user_guide/async_testing
для этого мне нужно расширить с любой из заданных классов я выбрал AsyncWordSpec
, чтобы я мог запускать асин c тесты и каждый раз получать значение в будущем, но я уже расширяюсь от TestKit
класса, я не могу расширяться от абстрактного класса AsyncWordSpec
так как я могу заставить это работать?