2014-10-09 2 views
0

у меня есть список объектов, пусть это будет целыми:Spock: как я могу издеваться список объектов, которые возвращают объект у меня есть

list = [1, 3, 8] 

мне нужен список объектов, которые на самом деле являются поставщиками эти целые числа. I.e .:

providersList = [p1.getInteger() = 1, p2.getInteger() = 3, p3.getInteger() = 8] //pseudo code 

Как это сделать?

UPDATE

К сожалению, похоже, что я был немного сбивает с толку. Это один из моих первых опытов с Споком, поэтому я могу смутить термины и идеи.

Я хочу высмеять список объектов. Разумеется, каждый объект имеет свои собственные методы. Тест будет вызывать только один метод этого объекта. Мне не нужно его реализовывать, потому что я знаю, что именно возвращает этот метод. И эти возвращаемые значения сохраняются в некотором списке, который у меня уже есть.

I.e. Мне нужно высмеять список объектов [p1, p2, p3], где каждый вызов объекта object.getInteger() возвращает некоторое целое число, которое я уже знаю, и у меня есть список этих целых чисел: [i1, i2, i3]: p1. getInteger() = i1 и т. д.

Как я могу издеваться над списком [p1, p2, p3] с помощью списка [i1, i2, i3]?

+2

Я не уверен, что вы спрашиваете? – brso05

+1

Вы имеете в виду '[providersList = [{-> 1}, {-> 3}, {-> 8}]'? Я тоже смущен –

+0

providersList = [p1, p2, p3]; Затем делают providersList.get (0) .getInteger()? – brso05

ответ

0

Вы можете просто попробовать:

@Grab('org.spockframework:spock-core:0.7-groovy-2.0') 
@Grab('cglib:cglib-nodep:3.1') 

import spock.lang.* 

class Test extends Specification { 
    def 'some spec'() { 
     given:  
     def mocks = [1, 2, 3].collect { i -> GroovyMock(SomeClass) { 
      getInteger() >> i 
      } 
     } 

     expect: 
     mocks*.getInteger().containsAll([1,2,3]) 
    } 
} 

class SomeClass { 
    Integer getInteger() { 
     0 
    } 
} 
Смежные вопросы