我有一个奇怪的用例,当我在'then:'部分中没有检查模拟类的两个调用时,spock mock返回正确的值,但是当我在'then:中包含两个检查时它返回0: ' 部分.这是模拟:
mockDao.readCounter(_, _, _, _, _) >> dbValue
Run Code Online (Sandbox Code Playgroud)
这是失败的'then:'部分:
1 * mockDao.readCounter(_, _, _, _, _)
// updateCounters is called with: sum = dbValue + value
1 * mockDao.updateCounter(namespace, date, key, min, shardID, dbValue + value)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,不是'dbValue',而是返回'0'.但如果我注释掉两个检查中的任何一个,那么它就会通过.因此,以下两种情况通过:
//1 * mockDao.readCounter(_, _, _, _, _)
// updateCounters is called with: sum = dbValue + value
1 * mockDao.updateCounter(namespace, date, key, min, shardID, dbValue + value)
OR
1 * mockDao.readCounter(_, _, _, _, _)
// updateCounters is called with: …Run Code Online (Sandbox Code Playgroud)