Akka TestKit ile ScalaTest kullanıyorum, herhangi bir dahili durumu mutasyona uğratmadan başka bir oyuncuya mesaj göndermek için kodladığım bir oyuncu için birleşme ve entegrasyon testleri yazdım. Örneğin bu atın:Başka bir oyuncuya mesaj gönderen Akka aktörünü nasıl test edebilirim?
class MyActor extends Actor {
val anotherActor = context.actorOf(Props[AnotherActor])
def receive: Receive = {
case MyMessage => anotherActor ! AnotherMessage
}
}
Ben anotherActor
MyActor
işleme MyMessage
bir sonucu olarak AnotherMessage
işlenmiş onaylar bir test yazmak istiyorum.
val testActorRef = TestActorRef(new MyActor)
"MyActor" should "change some internal state when it receives MyMessage" in {
testActorRef ! MyMessage
testActorRef.underlyingActor.someState shouldBe "altered"
}
Ama benim durumumda böyle devlet umurumda değil de: klasik bir örnek altta yatan aktör almak ve şöyle mesaj aldıktan sonra etkilenmiş gereken bazı iç durumu için kontrol etmek TestActorRef
kullanmaktır. Aslında böyle bir durumdan kaçınmak istiyorum. TestProbe.ref
'u test altındaki aktöre kaydettirmeniz gerektiğinden, ben de aradığım şey tam olarak değil. Çoğunlukla, testle ilgili Akka dokümantasyonundaki tüm örneklere baktım (http://doc.akka.io/docs/akka/snapshot/scala/testing.html) ama uygun bir şey bulamadım.
Tam olarak ne arıyordum! TestProbe.ref'de bırakmam gereken bir yöntemle çocuk oyuncuları oluşturmayı bile düşünmedim. Teşekkür ederiz @cmbaxter, – nmurthy
Alma yönteminde yaratılan başka bir aktörümüz varsa bunu nasıl yapıyoruz? –
Bu Java'da nasıl uygulanabilir? –