Kolay ünite testi için hapi yanıt nesnesini/işlevini alay etmenin basit bir yolu var mı?hapi.js birim test için sinonla nasıl yanıt verilir
Hapi için gördüğüm örnekler test için sunucu.inject ve "lab" çerçevesini kullanıyor. Mocha'yı nasıl kullanabileceğimi görmek ve sunucuya enjekte etmek yerine doğrudan denetleyiciyi test etmek istediğimi merak ediyorum.
Yanıt nesnesini taşımak için sinon kullanmalı mıyım?
test/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
});
kontrolörleri/post.js Nihayet
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));
}
});
}
}
, sadece yerine laboratuara geçiş gerekir?
: Eğer hata için test etmek isterseniz
, sadece saplama değiştirmeniz gerekir: biraz daha kod ile
Gönderim sırasında sinon sapladığını bildirirseniz, sunucu denetleyicisinin arayacağı kaydetme yöntemini geçersiz kılar mı? – MonkeyBonkey
@MonkeyBonkey Evet, olacak. –