6
간단한 단위 테스트를 위해 hapi 답신 개체/기능을 조롱하는 간단한 방법이 있습니까?단위 테스트를 위해 sinon을 사용하여 hapi.js 회신을 모의하는 방법
내가 hapi에서 본 예제는 모두 테스트를 위해 server.inject와 "lab"프레임 워크를 사용합니다. 모카를 계속 사용하는 방법을 알고 궁금해서 서버에 직접 주입하는 대신 컨트롤러를 직접 테스트하고 싶습니다.
sinon을 사용하여 응답 객체를 조롱해야합니까?
테스트/post.js
before(function() {
PostController = proxyquire('../controllers/post', { 'mongoose': mongooseMock });
});
it('should be able to create a post', function(done){
var request.payload = {foo:bar};
var reply = sinon.spy(); //is this how I should mock this?
PostController.create.handler(request, reply);
reply.should ...// how do I test for statuscode 201, Boom errors, and response msgs
});
컨트롤러/post.js 마지막으로
var Boom = require('Boom')
Post = require('../models/Post')
module.exports = {
create: {
auth: 'token',
handler: function (request, reply) {
var p = new Post({foo:request.payload.foo});
p.save(function (err, results) {
if (!err && results)
reply(results).created();
else {
reply(Boom.badImplementation(err));
}
});
}
}
, 방금 대신 실험실로 전환해야합니까?
: 오류를 테스트하려면
, 당신은 단지 스텁을 수정해야합니다 좀 더 코드와
게시물 저장시 sinon 스텁을 선언하면 서버 컨트롤러가 호출 할 save 메서드가 재정의됩니까? – MonkeyBonkey
@MonkeyBonkey 예, 가능합니다. –