我想验证业务逻辑是否将预期的user对象传递给dao,但我不知道如何为它编写自定义参数匹配器。
"user" should {
"be saved" in {
val dao = new UserDao()
dao.save(any[User]) returns mock[User]
runMyBusinessLogic();
val expectedUser = new User("Freewind", 123.23234)
there was one(dao).save(mymatcher(expectedUser));
}
}User类:
case class User(name:String, random: Double)它包含一个double字段,我需要对它做一些特殊的比较。
mymatcher是我想要定义的匹配器:
def mymatcher(expected: User) = ??? {
// compare `name` and `random`
}但我不知道如何在spec2中做到这一点,也找不到任何有用的文档。有什么帮助吗?
发布于 2014-04-01 16:15:03
我使用beLike匹配器。如下所示:
one(daoMock).insert { beLike[MyEntity] { case t:Entity => {
t.summary mustEqual "Summary"
t.description mustEqual "Description"
}}}在beLike匹配器中,你可以使用普通的值匹配器。
发布于 2019-10-22 16:28:17
对于模拟匹配,我使用了Matchers.argThat
import org.mockito.Matchers
import org.mockito.Mockito.verify
verify(service).methodCall(Matchers.argThat({
case CaseClass("const", arg2) =>
arg2 == expected
case _ => false
}))https://stackoverflow.com/questions/22779508
复制相似问题