lundi 6 avril 2015

Spock - Stubbed method is not returning the expected value?

I have the following use case



protected void saveSDAs(SdaCreationRequest request){
List<SaveSDAReq> saveSDARequests = saveSDAsRequestMapper.map(request);
for (SaveSDAReq saveSDARequest : saveSDARequests) {
SaveSDAResponse response = mvasV1Service.saveSDA(saveSDARequest, RETRY);
LOG.info("response status: {}", response.getSaveSDAResp().getResponseStatus().getStatus());
}
}


As you can see, in order to test this method in Spock, I would like to stub the Mapper interface to return List<Foo> objects, which is then looped through and passed into Creator interface.



def saveSDAs(){
given:
def request = new SdaCreationRequest()

def creator = new LegacyClientSDACreator()
def requestMapper = Stub(WebServiceRequestMapper)
creator.setSaveSDAsRequestMapper(requestMapper)

def saveSDAReq1 = new SaveSDAReq()
requestMapper.map(request) >> [saveSDAReq1]

def mvasV1Service = Mock(MVASV1Service)
creator.setMvasV1Service(mvasV1Service)

when:
creator.saveSDAs(request)

then:
1 * mvasV1Service.submitSDA(_, true)
}


However, instead of the stubbed list [saveSDAReq1], it is returning null. What am I doing wrong here?


Aucun commentaire:

Enregistrer un commentaire