[英]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.