所以我想單元測試我的ExpresJS路線。它看起來財產以後這樣ExpresJS單元測試(困惑)
server.js
var boards = require('./routes/BoardsRoute.js');
app.get('/api/v1/boards/:id', boards.getBoard);
BoardRoutes.js
exports.getBoard = function(req, res) {
BoardModel.find({
name: 'Kanban Board'
}, function(err, columns) {
if (!err) {
return res.send(columns);
} else {
return console.log(err);
}
});
return res.send(board);
};
我想模擬出的BoardModel,因爲這是在調用貓鼬模型(又名數據庫調用)。因爲我認爲單元測試不應該調用數據庫並且沒有服務器在運行。
我應該完全測試getBoards到server.js的app.get()調用。 (由於這些請求apt.get將被集成測試/ e2e測試覆蓋,並且它們是HTTP請求)
我可以看到的所有文檔和框架都必須運行Express Server才能單元測試路由而這個特別的exports.getBoard。
的事情,我試圖做,
使用Sinon.js嘲笑一個fakeServer這樣我就可以測試HTTP請求和方法getBoard。
使用SuperAgent和Super Test將請求發送到服務器。 (我對此感到不舒服,因爲單元測試不應該有服務器runnig)。
我想用摩卡來測試這些路線。
任何幫助將是偉大的,只是爲了澄清我的困惑。