Tôi đã phát triển với node.js trong nhiều tháng nhưng bây giờ tôi bắt đầu một dự án mới và tôi muốn biết cách cấu trúc ứng dụng.Cấu trúc để kiểm tra đơn vị trên node.js với mongoose
Sự cố của tôi xuất hiện khi nói về thử nghiệm đơn vị. Tôi sẽ sử dụng nodeunit để viết các bài kiểm tra đơn vị.
Ngoài ra tôi đang sử dụng Express để xác định các tuyến đường REST của mình.
Tôi đã suy nghĩ về cách viết mã truy cập cơ sở dữ liệu trong hai tệp "riêng biệt" (Chúng sẽ rõ ràng hơn, nhưng tôi chỉ đang cố đơn giản hóa mã). Sẽ có mã tuyến.
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);
}
});
};
Và, khi tôi đang sử dụng ở đó, dịch vụ mục được sử dụng chỉ để truy cập lớp dữ liệu. Tôi đang làm điều này để kiểm tra lớp truy cập dữ liệu duy nhất trên thử nghiệm đơn vị. Nó sẽ có một cái gì đó như thế này:
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);
}
})
};
Bằng cách này tôi có thể kiểm tra với kiểm tra đơn vị nếu nó hoạt động một cách chính xác và tôi có thể sử dụng mã này ở khắp mọi nơi tôi muốn. Điều duy nhất tôi không chắc chắn nếu nó được thực hiện một cách chính xác là cách tôi vượt qua một chức năng gọi lại để sử dụng giá trị trả về.
Bạn nghĩ gì?
Cảm ơn!
bạn sẽ muốn kết nối với mongo với mongodb: /// –
binarygiant
Cập nhật ví dụ. – rounce