Spock在Mock对象上调用setProperty('x','test')而不是setX('test')

问题描述 投票:0回答:1

我们有Foo和Bar类:

class Foo {
    String x
}
class Bar {
    void call(Foo foo, String x) {
        foo.x = x
    }
}

在单元测试中,我们这样做:

void 'test' {
    setup:
    mockFoo = Mock(Foo)
    when:
    new Bar().call(mockFoo, 'test')
    then:
    1 * mockFoo.setX('test')
}

但是在结果中,我们观察到测试因“调用次数太少”而失败,并显示了代替了嘲笑了嘲笑嘲讽(fockFoo.setProperty('x','test'))。此问题发生在CI环境中。在本地计算机上,一切正常。将测试更改为setProperty('x', 'test')会导致本地失败。有人可以解释如何处理此类问题吗?

groovy spock
1个回答
0
投票

我最近在Groovy 3中修复了该错误。Groovy 2.4仍然具有使用setProperty的旧行为。

此外,indy与default可能会在指令选择上有所不同。

© www.soinside.com 2019 - 2024. All rights reserved.