Node.js、Mongoose、およびこの環境でのテストは初めてです。次のスキーマを別のファイルで宣言しています。
Issue = mongoose.model("Issue", {
identifier: String,
date: String,
url: String,
name: String,
thumbnailURL: String
});
次に、MongoDB コレクション内のすべてのIssue
インスタンスを単純に返すこのメソッドがあります。
function issues(request, response) {
response.setHeader('Content-Type', 'text/json');
Issue.find().sort('date').exec(function(error, items) {
if (error) {
response.send(403, {"status": "error", "error:": exception});
}
else {
response.send(200, {"issues": items});
}
});
}
実験でここまでたどり着いたので、テストしたいのですが、問題が発生しました。MongoDB 接続などを設定せずにテストするにはどうすればよいですか。すべてを設定できることはわかっていますが、それは統合テストです。次のようなものをテストするための単体テストを作成したいと思います。
- 関数はコンテンツ タイプを正しく設定しますか
date
関数はフィールドでソートしますか- エラーが発生した場合、関数は 403 を返しますか?
- ... 等々
既存のコードをリファクタリングして単体テストを容易にする方法を知りたいです。response
およびItem
スキーマ オブジェクトをパラメーターとして受け入れて、呼び出される 2 番目の関数を作成しようとしましたが、うまくいきません。誰にもより良い提案がありますか?