【发布时间】:2020-07-09 17:58:25
【问题描述】:
我有一个使用 akka-http 定义的Route,它使用内部的参与者发送消息。
我的路线如下所示:
path("entity") {
post {
entity(as[Enrtity]) {
entity =>
val result: Future[Message] = mainActor.ask {
ref: akka.actor.typed.ActorRef[Message] =>
Message(
entity = entity,
replyRef = ref
)
}
complete("OK")
}
}
}
我的测试规范:
class APITest
extends ScalaTestWithActorTestKit(ManualTime.config)
with ScalatestRouteTest
with AnyWordSpecLike {
val manualTime: ManualTime = ManualTime()
// my tests here ...
}
编译测试失败,因为存在冲突的参与者系统:
class APITest inherits conflicting members:
[error] implicit def system: akka.actor.typed.ActorSystem[Nothing] (defined in class ActorTestKitBase) and
[error] implicit val system: akka.actor.ActorSystem (defined in trait RouteTest)
重写actor系统也无济于事,因为继承的actor系统既有类型的也有无类型的。 我怎样才能轻松解决这个问题?
更新:
这与不同类型的conflicting inherited members 相关,但我们可能能够以不同的方式解决我想要在这种情况下实现的目标。
【问题讨论】:
-
ScalaTestWithActorTestKit和ScalatestRouteTest不兼容。如果你真的不需要ScalaTestWithActorTestKit,也许你可以删除它?
标签: scala testing akka akka-http akka-actor