У меня есть тестовый класс, в котором мне нужно использовать и akka testkit , и akka http test kit
, поэтому я делаю это так
class MyTest extends TestKit(ActorSystem("testsys")) with ScalaFutures with ImplicitSender with AnyWordSpecLike with Matchers with BeforeAndAfterAll with ScalatestRouteTest {
//tests here
}
но я получаю ошибку времени компиляции
implicit val system: akka.actor.ActorSystem (defined in class TestKit) and
[error] implicit val system: akka.actor.ActorSystem (defined in trait RouteTest)
[error] (note: this can be resolved by declaring an `override` in class MyTest.)
[error] class InsertEventTest extends TestKit(ActorSystem("testinterpret")) with ScalaFutures with ImplicitSender with AnyWordSpecLike with Matchers with BeforeAndAfterAll with ScalatestRouteTest {
[error] ^
(note: this can be resolved by declaring an `override` in class InsertEventTest.)
, поэтому я сделал что-то подобное
class MyTest extends TestKit(ActorSystem("testsys")) with ScalaFutures with ImplicitSender with AnyWordSpecLike with Matchers with BeforeAndAfterAll with ScalatestRouteTest {
override def createActorSystem(): ActorSystem = system
override implicit val system: ActorSystem = createActorSystem
//tests here
}
но я получаю NullPointerException
Java.lang.NullPointerException: system must not be null!
[info] at java.base/java.util.Objects.requireNonNull(Objects.java:246)
[info] at akka.actor.ExtensionId.apply(Extension.scala:78)
[info] at akka.actor.ExtensionId.apply$(Extension.scala:77)
[info] at akka.testkit.TestKitExtension$.apply(TestKitExtension.scala:14)
[info] at akka.testkit.TestKitBase.$init$(TestKit.scala:161)
[info] at akka.testkit.TestKit.<init>(TestKit.scala:928)
[info] at MyTest.<init>(MyTest.scala:40)
[info] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[info] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[info] at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
вот документы TestKit и RouteTest