Ich versuche Einheitstests für meinen Schauspieler zu schreiben und bin auf Grund spotten stecken. PriceAggregateActor verwendet akka persistence und ich möchte nicht das ganze conf dafür übergeben und möchte es komplett ausspionieren.Mocking Kind Schauspieler in Akka
Dies ist der Schauspieler, die ich
object CommandPriceActor {
def apply() = Props(classOf[CommandPriceActor], PriceAggregateActor())
}
class CommandPriceActor(priceAggregateActorProps: Props) extends Actor with ActorLogging {
val priceAggregateActor = context.actorOf(priceAggregateActorProps, "priceAggregateActor")
Also in meinen Tests Ich versuche, etwas zu tun, wie testen wollen:
class CommandPriceActorTest extends TestKit(ActorSystem("test-benefits",
ConfigFactory.parseString("""akka.loggers = ["akka.testkit.TestEventListener"] """))) with FlatSpecLike with Matchers
with BeforeAndAfterAll with Eventually{
class MockedChild extends Actor {
def receive = {
case _ => lala
}
}
val probe = TestProbe()
val commandPriceActor = TestActorRef(new CommandPriceActor(Props[MockedChild]))
Ich bin immer bekommen:
Caused by: java.lang.IllegalArgumentException: no matching constructor found on class CommandPriceActorTest$MockedChild for arguments []
Warum beschwert sich über MockedChild? Es sollte keine Konstruktorargumente enthalten.
ich bekommen, was Sie sagen, aber wie schreibe ich, dass in Code? :) – Reeebuuk
Ich habe einige Beispiele hinzugefügt. Die ursprüngliche Antwort wurde in einem Flughafen auf meinem Handy gemacht. – iain
Funktioniert wie ein Charme! Thx Ian :) – Reeebuuk