在我的單元測試中,有沒有一種方法可以殺死然後重新啓動一個持久actor以檢查它是否可以正確保留狀態(並且,例如,事件序列化/反序列化工作正常)?如何在單元測試中殺死並重啓akka persistent actor以查看它是否保留狀態
1
A
回答
3
// Initialize the actor and a probe for the actor
val probe = TestProbe()
val act = system.actorOf(Props[MyActor], "name")
// send messages to the actor to change state
// Validate that the state has changed
// Send a message to terminate the actor
act ! PoisonPill
// wait for the actor to shutdown
probe.watch(act)
probe.expectTerminated(act)
// Initialize a new probe and a new instance of the actor, with the assumption
// that the actor has the same persistence id as the initial one.
// That actor should now be in the same state as before.
val probeTwo = TestProbe()
val rehydrated = system.actorOf(Props[MyActor], "name")
// Validate the state of the actor.
// Todo: Put your validation checks here
以下是關於test actors的一些有用信息。
0
注意:對於持續演員而言,PoisonPill消息不是推薦的方式來阻止演員。推薦的方法是明確關閉例如:system.stop(act)
http://doc.akka.io/docs/akka/current/scala/persistence.html#Safely_shutting_down_persistent_actors
相關問題
- 1. 如何測試Akka Persistence actor
- 2. 如何在X時間後殺死Akka actor?
- 3. 如何檢查Akka actor是否存在(akka 2.2)?
- 4. 如何在恢復提交併保留單元測試時檢查測試?
- 5. 如何測試DIV以查看它是否存在
- 6. Akka:如何單元測試OneForOneStrategy?
- 7. 單元測試AKKA actors
- 8. 如何殺死應用程序線程並重新啓動它?
- 9. Akka Routing:Recipient Actor已經死了
- 10. 如何測試你的應用程序被殺死並重新啓動?
- 11. 使用DeathWatch殺死Akka actor時發送的消息
- 12. 何時在android中查看'殺死'?
- 13. Akka Actors單元測試模型
- 14. 如何單元測試會話狀態
- 15. 如何在Java中正確測試Akka actor?
- 16. 如何成功殺死一個java進程並在unix中重啓它?
- 17. 如何重新啓動殺死Android應用程序在與機器人測試
- 18. 如何在單元測試時重置狀態機C
- 19. 單元測試狀態
- 20. 檢測會話掛起並殺死它
- 21. 如何設置測試狀態中測試單元成功
- 22. 殺死查看並返回rootViewController
- 23. 使用Actor模型保存駐留在POCO/DTO中的狀態
- 24. 啓動子流程並在完成時保存以殺死
- 25. 如何殺死它存在
- 26. 同一單元測試中的狀態和行爲驗證 - 它是否乾淨?
- 27. 重構靜態類,所以我可以單元測試它
- 28. 如何在Akka多節點測試中重新啓動節點?
- 29. 如何殺死配置單元啓動的mapred作業?
- 30. Pixastic IE測試殺死IE9