我一直在用node.js開發幾個月,但現在我開始一個新項目,我想知道如何構建應用程序。Node.js與貓鼬進行單元測試的結構
當談到單元測試時,我的問題就來了。我將使用nodeunit編寫單元測試。
此外,我使用express來定義我的REST路由。我想寫我的代碼,訪問數據庫在兩個「單獨」文件(他們會更多,顯然,但我只是想簡化代碼)。將會有路線代碼。
var mongoose = require('mongoose')
, itemsService = require('./../../lib/services/items-service');
// GET '/items'
exports.list = function(req, res) {
itemsService.findAll({
start: req.query.start,
size: req.query.size,
cb: function(offers) {
res.json(offers);
}
});
};
而且,正如我在那裏,一個項目服務只是用來訪問數據層。我這樣做是爲了測試單元測試中的數據訪問層。這將是這樣的:
var mongoose = require('mongoose')
, Item = require('./../mongoose-models').Item;
exports.findAll = function(options) {
var query = Offer
.find({});
if (options.start && options.size) {
query
.limit(size)
.skip(start)
}
query.exec(function(err, offers) {
if (!err) {
options.cb(offers);
}
})
};
這樣我可以與單元測試檢查其是否正常工作,我可以隨處使用此代碼我想要的。我不確定它是否正確完成的唯一方法是我傳遞迴調函數以使用返回值的方式。
您認爲如何?
謝謝!
您需要使用mongodb連接到mongo:/// –
binarygiant
更新了示例。 – rounce