ログインコードの一部として次のものがあります。私はすでに単体テストを書いているauthentication.login()
ので、テストする必要があるのは応答処理自体だけです。
app.post('/login', function(req, res) {
var username = req.body.username;
var password = req.body.password;
authentication.login(username, password, function(err, result) {
if (err !== null) {
res.setHeader('Content-Type', 'text/plain');
res.setHeader('Content-Length', err.length);
res.end(err);
} else {
req.session.user = result;
var userFilter = ['username'];
result = JSON.stringify(result, userFilter);
res.setHeader('Content-Type', 'application/json');
res.setHeader('Content-Length', result.length);
res.end(result);;
}
});
});
そのため、応答ヘッダーと本文が期待どおりであることを確認するテストを作成します。しかし、authentication.login() 関数をどのように扱うのでしょうか? すでにテストされているので、ここでモック/スパイを使用する必要があると思いますか? しかし、認証オブジェクトを置き換えるためにそれらを使用するにはどうすればよいでしょうか? または authentication.login 関数をモックする必要はありませんか、依存関係としてコードに残しても問題ありませんか?