Nock 도구를 이해하려고 시도하고 있는데, 내 코드에서 요청 및 응답을 조롱합니다. 저는 간단한 HTTP 클라이언트 인 npm request를 사용하여 백엔드 REST API를 요청하고 Chai는 기대 라이브러리를, Mocha는 테스트를 실행합니다. 여기Nock으로 NodeJS 요청 및 응답을 조롱하십시오.
var nock = require('nock');
var storyController = require('../modules/storyController');
var getIssueResponse = {
//JSON object that we expect from the API response.
}
it('It should get the issue JSON response', function(done) {
nock('https://username.atlassian.net')
.get('/rest/api/latest/issue/AL-6')
.reply(200, getIssueResponse);
storyController.getStoryStatus("AL-6", function(error, issueResponse) {
var jsonResponse = JSON.parse(issueResponse);
expect(jsonResponse).to.be.a('object');
done();
})
});
그리고 GET 요청을 할 수있는 코드는 다음과 같습니다 : 여기가 테스트를 위해 가지고있는 코드는이 단일 테스트가 통과되고 난 왜 이해가 안
function getStoryStatus(storyTicketNumber, callback) {
https.get('https://username.atlassian.net/rest/api/latest/issue/' + storyTicketNumber, function (res) {
res.on('data', function(data) {
callback(null, data.toString());
});
res.on('error', function(error) {
callback(error);
});
})
}
. 실제로 실제 전화를 걸고 내 가짜 노크 요청/응답을 사용하지 않는 것 같습니다. 나는 장전 섹션 또는 변경 언급 경우
.reply(200, getIssueResponse) to .reply(404)
그것은 테스트 아무것도 변화를 중단하지 않습니다, 나는 나의 장전 변수로 아무것도 아니에요. 누군가 Nock을 사용하여 NodeJS http-client에서 요청과 응답을 조롱하는 방법을 명확하게 보여주는 설명을 해줄 수 있습니까?
응답 엔드 콜백은 어디에 있습니까? – Dhirendra
@Dhirendra 게시 된 코드에서 꽤 명확하다고 생각합니다. 콜백은 "콜백"이라는 전달 함수이고 data.toString()은 응답입니다. –