[英]How to test global middlware in expressJS?
这似乎是一个简单的问题,但我很难过。 如何测试我的 expressjs 中间件是否正确设置了用户 session?
app.use((req:Req, res:Response, next:NextFunction) => {
req.userSessionId = uuid();
next();
});
我不确定如何测试是否正在捕获传入请求并正确设置 userSessionId。 我想要类似的东西
describe('setting up middleware', ()=> {
//instantiate the app
expect(app.use).tobeCalled();
expect(mockReq).toBeSetWith(userSessionId)
});
您可以将中间件代码重构为 function,并编写测试此 function 逻辑的单元测试。
在我( 和其他人)看来,您的单元测试应该只测试您的代码并避免测试 Express 逻辑(调用您的中间件)。 为此,您应该进行集成测试,以测试您的应用程序作为一个整体是否正常工作
// This middleware code needs to be tested
const userSessionMiddleare = (req: Request, res:Response, next: NextFunction) => {
req.userSessionId = uuid();
next();
};
// This Express logic should not be unit-tested but rather tested in your integration testing
app.use(userSessionMiddleare);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.