私はJavascriptでテストし、mochaとchaiを使ってNodeJSバックエンドをテストしようとする初心者です。私のルートの全ては、それらがログインしていない場合は、人々が前進することはできませんミドルウェアで満たされている方法 。テストを実行する前に毎回ログインする方法
checkauth
が
var checkauth = function(req, res, next) {
console.log("In checkauth");
if (req.isAuthenticated()) {
next();
} else {
console.log("Doesn't authenticate");
res.status(401);
res.set('Content-Type', 'application/json');
res.end(JSON.stringify({
'success': false
}));
}
};
あるこの
app.post('/user/analytics/driverdata', checkauth, function(req, res) {
analytics.driverData(req, res);
});
ような何か
isAuthenticatedパラメーターは、要求をデシリアライズするときにPassportJSによって要求に付加されます。 私がしたいのは、
app.post('/user/analytics/driverdata', checkauth, function(req, res) {
analytics.driverData(req, res);
});
このAPIのテストを書くことです。私はそこに到達できないのでログインしていないので失敗している。 私はbeforeEachを書いてユーザbeforeEach it
にログインしました。こんなふうになります。
var expect = require('chai').expect;
var request = require('superagent');
beforeEach(function(done){
//login into the system
request
.post("http:localhost:5223/user/authenticate/login")
.send({username : "[email protected]", password : "saras"})
.end(function assert(err, res){
if(err){
console.log(err);
done();
}
else{
done();
}
});
});
私は私が間違っているのかわからないし、インターネットは私を失敗しました。どこに間違っているのかを指摘する助けに感謝します。