1
단위 테스트를 작성하는 동안 원격 시스템 호출에 대한 응답을 효과적으로 모의 처리 할 수 있습니까?노드 JS - 단위 테스팅을 위해 비누 함수 호출을 스텁하는 방법
client.SomeFunction(input, function(err, result)) {...}
을 포함하는 코드가 여기에 있습니다 : : 문제의 방법이 하나가
이 코드는 결국 함수가 필요한 이유 인 AWS 람다로 실행하는 것입니다'use strict';
var soap = require('soap');
var responseBuilder = require('./responseBuilder');
var errorHandler = require('../src/errorHandler');
/**
* Execute the soap client
*/
exports.executeSoapClient = function (input, headers, wsdlOptions, wsdlPath) {
var soapClientPromise = new Promise(function(resolve, reject){
var response = responseBuilder.buildResponse();
//Call SOAP Client
soap.createClient(wsdlPath, wsdlOptions, function (err, client) {
if (err) {
console.error(err, err.stack);
reject(errorHandler.createError("Unexpected: Could not communication with remote system.", 500));
}
client.addSoapHeader(headers, "", "tkn", "http://siebel.com/webservices");
//This is the function I want to mock out.
client.SomeFunction(input, function (err, result) {
if (err) {
console.error(err);
reject(errorHandler.createError("Unexpected: Unexpected: Could not call remote function on remote system.", 500));
} else {
if (result.Error_spcCode > 0) {
var errorMessage = result.Error_spcMessage + " (" + result.Error_spcCode + ")";
var error = errorHandler.createError("Business rule violation in remote system: " + errorMessage, 401);
console.error(error);
reject(error);
} else {
var successMessage = { flexId: result.FLEXId , message: result.Message };
resolve(response.success(successMessage));
}
}
});
});
});
return soapClientPromise;
};
그 방식으로 명명 될 수 있습니다.