Как я могу разрешить конфликтующие системы акторов при тестировании актеров akka-http и akka в одном файле spe c? - PullRequest
0 голосов
/ 29 марта 2020

У меня есть Route, определенный с помощью akka-http, который использует актера внутри для отправки сообщений. Мой маршрут выглядит следующим образом:

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

Моя тестовая спецификация c:

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)

Переопределение системы акторов также не помогает, поскольку унаследованные системы акторов бывают как типизированными, так и нетипизированными. Как я могу решить эту проблему легко?

Обновление:

Это связано с конфликтом унаследованных членов с различными типами, но мы могли бы решить то, что я хочу достичь в этом контексте по-другому.

...