私は何ヶ月もnode.jsを使って開発していましたが、今は新しいプロジェクトを開始しています。このアプリケーションの構造を知りたいと思います。node.jsのユニットテストのための構造
私の問題は単体テストについて話すときに来ます。ユニットテストを書くためにnodeunitを使用します。
また、エクスプレスを使用して自分のRESTルートを定義しています。
私はデータベースを2つの「別々の」ファイルにアクセスするコードを書くことを考えていました(もっと明らかになりますが、コードを単純化しようとしています)。ルートコードがあります。
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