2015-05-21 50 views
0

我是新來的Spock f/w並試圖學習它。我已經寫了一些示例代碼,我期望在when部分的println(list.size())聲明部分將打印值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

如果您發現我的答案有用,請接受並且註銷它。 – Opal

回答

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