2014-09-10 25 views
3

單元測試持久角色如何做。我知道有一個akka-testkit可以用來獲取下面的測試actor參考的底層actor對象。單元測試Akka中的持續角色

final TestActorRef<MyActor> ref = TestActorRef.create(system, props, "testA"); 
final MyActor actor = ref.underlyingActor(); 
assertTrue(actor.testMe()); 

但是這對於提到的here的持續演員不起作用。

問題:一個單元怎麼測試一個持久性actor的方法?

回答

1

此問題已在郵件列表in this thread上得到解答。我會在這裏給出一些答案。

在測試Actor時,TestActorRef不應該被過度使用。最佳實踐是通過發送和接收演員的消息來儘可能多地進行測試。即使使用TestActorRef,通常在通過發送和接收消息測試任何你想再次測試之前,通常使用它來改變actor的狀態。不建議使用直接訪問actor來直接調用方法。如果你的演員有一些更復雜的邏輯需要單獨測試,你可以考慮把它放到一個特質或不同的類中,然後在沒有演員的情況下進行測試。

至於測試PersistentActors,測試工具正在開發中,您可以跟蹤進度here