2015-12-24 25 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。 (注意“类型”而不是“类”)。