OK,首先,尽管您可能不想做测试路由代码的操作,但通常来说,请尝试将纯JavaScript代码(类或函数)与Express或您使用的任何框架分离的有趣的业务逻辑分开。使用香草摩卡咖啡测试来测试。一旦实现,如果您想真正测试在Mocha中配置的路由,则需要将模拟req, res
参数传递到中间件函数中,以模仿Express / Connect与中间件之间的接口。
对于一个简单的例子,您可以创建一个模拟res
对象,其render
功能类似于以下内容。
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
同样,仅FYI中间件函数不需要返回任何特定值,这是它们req, res, next
对测试中应重点关注的参数所做的事情。
这是您在注释中要求的一些JavaScript。
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);
});
});
});