Как смоделировать httprequest в тестировании отличных споков - PullRequest
0 голосов
/ 28 июня 2019

Мне нужно выставить макет, чтобы 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)

...