1

我是 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

所以我的 SendEmailActorSendEmailResult按预期返回 a 。但是测试单元失败了。我不知道为什么。SendEmailActor$SendEmailResult$和有什么区别SendEmailActor$SendEmailResult

4

2 回答 2

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 SendEmailResultclassOf[SendEmailActor.SendEmailResult],所以这是你应该期待的。

于 2015-12-24T10:07:42.700 回答
2

我遇到了类似的问题,但建议的答案不起作用。我的任务是检查用作 Akka 消息的简单案例类的到来。

解决方案是使用:

expectMsgType[Message]

而不是 expectMsgClass。(注意“类型”而不是“类”。)

于 2018-02-13T12:29:54.070 回答