这个Mock测试的结果应该是什么?

时间:2015-05-21 05:16:07

标签: spock

我是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()
}

1 个答案:

答案 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
     }
}