【发布时间】:2019-10-04 10:07:55
【问题描述】:
我正在将一个大型应用程序从 Grails 3.3 迁移到 Grails 4。
在我们遇到的与 Spock 相关的问题中,我们在 Grails 3.39 中使用的功能似乎缺失:当使用数据表表示规范时,输入列似乎接受了整数价值观
在下面的代码中,只有第一行斑点正在传递文本。没有接下来的两个,因为 spock 在将其传递给 Math.round(value)
import spock.lang.*
@Unroll
void 'test to demostrate Spock is just accepting integer in datatable column value'() {
expect:
Math.round(value) == result
where:
value | result
1234 | 1234
4321.56d | 4322d
1111.56f | 1112d
}
我在 Grails 3.3 版中没有发现这个问题。
提前感谢您参加本期
胡安
更新:
更新:
所描述的行为变化实际上发生在基于数据表的测试之前是一个包含抛出异常的测试
解决方法:
将包含异常抛出的测试移至最后一个测试。
【问题讨论】:
-
你指的是哪个版本的 spock?
-
我将您的代码直接复制并粘贴到 github.com/jeffbrown/juansalvadorspock/blob/… 中,该测试似乎运行良好。
-
你使用的是哪个 JDK?
-
“当使用数据表来表示规格时,输入列似乎接受了整数值” - 很难说你的项目出了什么问题,但绝对不是仅支持整数值的情况。可以使用任意对象或原语。
-
嗨,杰夫,我已经更新了日志,问题是基于数据表的测试之前有一个包含抛出异常的测试