【问题标题】:How to mock case class?如何模拟案例类?
【发布时间】:2015-10-08 19:35:02
【问题描述】:

我有以下案例类:

case class User(username:String, createdDate:DateTime)

还有一个要测试的类:

class UserDAO{
def registerUser(user:User)
}

我想验证 registerUser 是否使用具有 username="myusername" 的输入用户调用。基于这个文档https://mockito.googlecode.com/hg-history/1.7/javadoc/org/mockito/Matchers.html 我想出了这样的代码:

verify(userDAO).registerUser(User(eq("myusername"),any[DateTime]))

但是这是不对的,我在编译时出错了。

错误是Type mismatch, expected UUID actual Boolean

【问题讨论】:

  • 当您遇到错误时,永远不要只说“我有错误”。复制并粘贴确切的错误消息。错误消息包含有关问题所在的重要信息。
  • 你不是想在那里模拟一个案例类。你正在构建这个类并试图给它 hamcrest 匹配器作为参数。我也不认为嘲笑User 是你甚至想要在这里做的......你不只是想创建一个匹配器吗?

标签: scala unit-testing testing mockito


【解决方案1】:

我使用不同的方法解决了我的问题。我使用capture 模拟对象的输入参数,然后验证捕获的值。

http://docs.mockito.googlecode.com/hg/org/mockito/ArgumentCaptor.html

【讨论】:

    猜你喜欢
    • 2019-10-06
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多