0

我在使用 specs2 和 mockito 为 scala 项目编写测试时遇到问题。有没有办法对被测试的方法传递给模拟服务方法的参数执行一些复杂的检查?例如:

  session = ....
  sessionDao.getByUid(sessionUID).returns(Some(session))

  val result = service.refreshSessionFor(token)

  result must beLeft

  got{
    one(sessionDao).getByUid(sessionUID)
    one(sessionDao).update(any[Session])
  }

问题是,我想检查会话对象的字段“lastUsed”是否已更新。唯一的方法是检查 sessionDao.update 方法的参数字段。但是我在 mockito 手册中找不到如何做到这一点。

4

1 回答 1

2

您可以将任何 specs2 匹配器传递给模拟方法:

got{
  one(sessionDao).getByUid(sessionUID)
  one(sessionDao).update(beLike[Session] { case s: Session => s.lastUsed must be_>(last) })
}
于 2013-05-21T11:16:22.883 回答