2016-08-17 2 views
1

익스프레스 앱에 별도의 서버로 나가는 요청을 한 다음 클라이언트에게 반환 된 응답을 보내는 미들웨어 기능이 있습니다.익스프레스에서 미들웨어 테스트를위한 스터 빙 요청 응답

그래서 좀 일이 : 나는 유닛 테스트를 작성에서 찾고 밖으로 조롱하고 이러한 기능을 withing에 보내는 요청이 발사됩니다 때 내 자신의 응답을 반환하고 싶은

var request = require('request'), 
    helpers = require('./helpers.js'); 

//GET 
module.exports.fetch = function(req, res) { 
    var options = helpers.buildAPIRequestOptions(req); 
    request(options, function(err, response, body){ 
    res.status(response.statusCode).send(body); 
    }); 
}; 

.

나는 supertest을 가로 질러 온과 너무 같은 스위트 쓰기에서 이동이 있었다 : 내가 여기 sinon 뭔가를해야한다고 생각

var app = require('./index.js'), 
    request = require('supertest')(app), 
    should = require('should'); 

//GET 
describe('GET requests', function(){ 
    it('should do something', function(done){ 
    request 
     .get('/api/schemes') 
     .expect(200, done) 
     .end(function(err, res){ 
     // console.log(res); 
     // console.log(err); 
     res.status.should.equal(200); 
     }); 
    }); 
}); 

을, 그래서 난 내 미들웨어 기능을 칠 것이다 요청에 스파이 수 내 선택의 응답을 반환합니다. 나는 스터 빙을 테스트에 추가하는 방법을 이해하기 위해 고심하고있다.

누군가 더 조언 해주실 수 있습니까?

감사

답변

2

node-nock은 (대리 등, 요청)을 http 모듈을 통해 만든 요청을 기록 할 수 있습니다. 이것들은 테스트 스위트에서 재생을 위해 대기 할 수 있습니다. GitHub 페이지에는 훌륭한 문서가 있습니다.

+0

외부 웹 요청을 조롱하는 데 노크를 사용합니다. –

+0

제안을 주셔서 감사합니다. 분명히 사용의 무언가처럼 보입니다. 예를 들어 내 OP에서 공유 한 예를 사용하는 방법을 알아 내려고했습니다! :) – mindparse

+0

@mindparse는 요청 전에'nock.recorder.rec();'를 던져서 콘솔에있는 응답을 조롱하는 코드를 얻을 것이다. – Gant

관련 문제