我希望通过对 Express.js 中间件的集成测试来推动行为。我遇到了一个有趣的情况,即应用程序背后的 Express 的行为是不可预测的(无论如何我都不是)。
作为一个简化的例子:
var middlewareExample = function(req, res, next){
if(req.session){
refreshSession(req.session, function(err, data){
if(!err){
res.redirect('/error');
}
});
next();
}else{
res.redirect('/authenticate');
}
};
问题在于对next
重定向的调用,因为它存在于内部函数和条件之外。我不确定 Express 如何处理中间件/路由调用,next
或者res.redirect
它们是否碰巧发生在彼此之前或之后,如上所示。
手动测试没有发现任何奇怪的行为,supertest 模块也没有。我想知道 Express 是否以及如何应对此类情况。此外,可以使用超测来暴露任何潜在的不良行为。此外,如果可以的话,我想听听其他人一般会使用什么方法来测试 Node/Express 中间件。