在 IntelliJ IDEA 中调试时,无法在 Evaluate Expression 对话框中访问 Spock 测试的变量
Variables of Spock test are not accessible in Evaluate Expression dialog while debugging in IntelliJ IDEA
在下面的 Spock 测试中:
def 'simple assertion'() {
expect:
Math.max(a, b) == max
where:
a | b | max
3 | 5 | 5
4 | 9 | 9
}
在 expect 块的代码行中设置断点时,无法在调试时从 Evaluate Expression... 对话框访问变量 (a, b)
的值。返回的异常是:
groovy.lang.MissingPropertyException: No such property: a, b for class: DUMMY
唯一的解决方法是手动将 where
部分的数据复制到计算表达式对话框中。
如何使用 评估表达式 而无需手动复制测试 where
部分的值?
我在 macOS 12 Monterey 上使用 IntelliJ IDEA Ultimate 2022.1 运行,Groovy 版本 4 和 Gradle 作为构建工具。
当我明确声明参数时它对我有用。
def 'simple assertion'(int a, int b, int max) {
expect:
Math.max(a, b) == max
where:
a | b | max
3 | 5 | 5
4 | 9 | 9
}
在下面的 Spock 测试中:
def 'simple assertion'() {
expect:
Math.max(a, b) == max
where:
a | b | max
3 | 5 | 5
4 | 9 | 9
}
在 expect 块的代码行中设置断点时,无法在调试时从 Evaluate Expression... 对话框访问变量 (a, b)
的值。返回的异常是:
groovy.lang.MissingPropertyException: No such property: a, b for class: DUMMY
唯一的解决方法是手动将 where
部分的数据复制到计算表达式对话框中。
如何使用 评估表达式 而无需手动复制测试 where
部分的值?
我在 macOS 12 Monterey 上使用 IntelliJ IDEA Ultimate 2022.1 运行,Groovy 版本 4 和 Gradle 作为构建工具。
当我明确声明参数时它对我有用。
def 'simple assertion'(int a, int b, int max) {
expect:
Math.max(a, b) == max
where:
a | b | max
3 | 5 | 5
4 | 9 | 9
}