相关疑难解决方法(0)

Spock mock返回错误的值

我有一个奇怪的用例,当我在'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)

groovy unit-testing mocking spock

4
推荐指数
1
解决办法
5728
查看次数

标签 统计

groovy ×1

mocking ×1

spock ×1

unit-testing ×1