我是Spock
f / w的新手,并试图学习它。我已经编写了一些示例代码,我期望println(list.size())
部分下的when
语句将打印值10
(因为此调用已在给定部分下存根)。但我得到0(似乎是返回类型的默认值,即int
)。能帮助我理解吗?
def "size of list test "() {
given:
ArrayList list = Mock()
list.size() >> 10
when:
list.add(1)
list.add(2)
println(list.size())
then:
1*list.size()
}
答案 0 :(得分:0)
当您同时模拟和验证交互时,应在then
块中配置模拟返回的值。以下示例运行良好:
@Grab('org.spockframework:spock-core:0.7-groovy-2.0')
@Grab('cglib:cglib-nodep:3.1')
import spock.lang.*
class Test extends Specification {
def 'sample spec'() {
given:
ArrayList list = Mock()
when:
list.add(1)
list.add(2)
println(list.size())
then:
1 * list.size() >> 10
}
}