Мне нужно выставить макет, чтобы httprequest отвечал обратно на httprequest, созданный во время тестирования класса.
Мой класс использует httprequest (на основе SOAP XML) для службы создания, чтения и обновления.в конечном итоге тест будет выполняться на Jenkins и выполняется локально с использованием maven.
Код для тестирования:
def callService(request, action, tableName) {
def response = httpRequest consoleLogResponseBody: true, ccustomHeaders: [[maskValue: false, name: 'SOAPAction', value: "urn:${action}"], [maskValue: false, name: 'Content-Type', value: 'text/xml;charset=UTF-8']],
authentication: 'xyz_ab', httpMode: 'POST', requestBody: request, url: "https://serviceurl.com/drft_${tableName}_${getActionUrn(action)}.do?hierarchical=true&SOAP", validResponseCodes: '200,201'
def parsedResp = new XmlSlurper().parseText(response.getContent()).declareNamespace(soap:'http://schemas.xmlsoap.org/soap/envelope/')
return parsedResp.'soap:Body'
}
Код тестирования:
when:
result == TestClassObj.callService(request, action, tableName)
then:
1* getMockPipeline('httpRequest')
Текущий код тестане может издеваться над httpRequest.Ошибка при тестировании Maven ниже:
groovy.lang.MissingMethodException: No signature of method: package.class.scriptName.httpRequest() is applicable for argument types: (java.util.LinkedHashMap) values: [[consoleLogResponseBody:true, ccustomHeaders:[[maskValue:false, ...], ...], ...]]
at package.class.scriptNameTest.callService test(scriptNameTest.groovy:60)