2015-12-24 29 views
0

我在測試代碼是新來斯卡拉阿卡如何測試阿卡行動與expectMsgClass

我有這個

val sendEmailActor = system.actorOf(SendEmailActor.props) 

    sendEmailActor ! email 

    expectMsgClass(SendEmailActor.SendEmailResult.getClass) 

但我得到了測試失敗。

java.lang.AssertionError: assertion failed: 
expected class vndirect.elasticemail.actor.SendEmailActor$SendEmailResult$, 
found class vndirect.elasticemail.actor.SendEmailActor$SendEmailResult 

所以我的SendEmailActor按照預期返回SendEmailResult。但測試單元失敗。我不知道爲什麼。有什麼區別SendEmailActor$SendEmailResult$SendEmailActor$SendEmailResult

回答

2
之間

你可能有這樣的事情

object SendEmailActor { 
    ... 
    case class SendEmailResult(some arguments) 
    object SendEmailResult // may be compiler generated 
} 

class SendEmailActor { 
    // has ... ! SendEmailResult(...) in some method 
} 

SendEmailActor.SendEmailResult.getClass是類的object SendEmailResultclass SendEmailResult的等級是classOf[SendEmailActor.SendEmailResult],所以這是您應該期望的。

+0

感謝您的明確解釋。我將我的代碼更改爲'classOf [SendEmailActor.SendEmailResult]',它工作正常! –

0

我帶着類似的問題來到這個問題,但建議的答案沒有奏效。我的任務是檢查用作Akka消息的簡單案例類的到來。

的解決方案是使用:

expectMsgType[Message] 

代替expectMsgClass。 (注意「類型」而不是「類」)。