OK, d'abord, bien que le test de votre code de routage est quelque chose que vous pouvez ou ne voulez pas le faire, en général, essayez de séparer vos affaires intéressant la logique pure de code javascript (classes ou fonctions) qui sont découplées de l'express ou tout ce framework que vous utilisez et de l'utilisation de la vanille moka tests pour le tester. Une fois que vous avez réalisé que si vous voulez vraiment tester les itinéraires que vous configurez dans le moka, vous devez passer maquette req, res
paramètres dans votre middleware de fonctions pour imiter l'interface entre l'express/connect et votre middleware.
Pour un cas simple, vous pouvez créer une maquette res
objet avec un render
fonction qui ressemble à quelque chose comme ça.
describe 'routes', ->
describe '#show_create_user_screen', ->
it 'should be a function', ->
routes.show_create_user_screen.should.be.a.function
it 'should return something cool', ->
mockReq = null
mockRes =
render: (viewName) ->
viewName.should.exist
viewName.should.match /createuser/
routes.show_create_user_screen(mockReq, mockRes).should.be.an.object
Aussi juste pour info middleware fonctions n'avez pas besoin de retourner une valeur particulière, c'est ce qu'ils font avec l' req, res, next
paramètres que vous devriez vous concentrer sur le test.
Voici une partie du code JavaScript comme vous l'avez demandé dans les commentaires.
describe('routes', function() {
describe('#show_create_user_screen', function() {
it('should be a function', function() {
routes.show_create_user_screen.should.be.a["function"];
});
it('should return something cool', function() {
var mockReq = null;
var mockRes = {
render: function(viewName) {
viewName.should.exist;
viewName.should.match(/createuser/);
}
};
routes.show_create_user_screen(mockReq, mockRes);
});
});
});