我是scala akka的新手
在我的测试代码中我有这个
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
答案 0 :(得分:3)
你可能有像
这样的东西object SendEmailActor {
...
case class SendEmailResult(some arguments)
object SendEmailResult // may be compiler generated
}
class SendEmailActor {
// has ... ! SendEmailResult(...) in some method
}
SendEmailActor.SendEmailResult.getClass
是object SendEmailResult
的类。 class SendEmailResult
的等级为classOf[SendEmailActor.SendEmailResult]
,因此这是您应该期待的等级。
答案 1 :(得分:2)
我遇到了类似问题的问题,但建议的答案并不奏效。我的任务是检查用作Akka消息的简单案例类的到来。
解决方案是使用:
expectMsgType[Message]
而不是expectMsgClass。 (注意"键入"而不是" Class"。)