3
我目前正在學習測試一般,我不知道如何測試一個快速中間件驗證jsonwebtoken。表達中間件基本上是一個功能,因此理論上它應該是單元可測試的。有人能告訴我怎麼會這樣做嗎?到目前爲止,這是我的中間件。我目前使用摩卡和柴作爲我的測試框架。測試一個jsonwebtoken認證express中間件
import jwt from "jsonwebtoken";
import secret from "../jwtSecret"
function authenticateJwt(req, res, next){
let token;
let authorizationHeaders = req.headers["authorization"];
if(authorizationHeaders){
token = authorizationHeaders.split(" ")[1];
}
if(token) {
jwt.verify(token, secret, (err, decodedToken) => {
if(err){
res.status(403).json({
success: false,
error: "Invalid token provided"
});
} else {
next();
}
});
} else {
res.status(403).json({
success: false,
error: "No token provided"
});
}
}
export default authenticateJwt;
那麼我應該使用哪些庫來測試這個功能?目前只使用摩卡作爲我的測試跑者和柴的斷言。我真的不想學習像錫諾這樣的另一個圖書館。沒有這些庫可以測試當前的功能嗎? – Nate
我沒有在我的例子中使用sinon,所以當然你可以用這種方式來測試它。像sinon這樣的間諜可以更容易地檢查一個函數是否被調用,就像我的例子中的next()。但免費罰款首先使用摩卡和柴。 – YLS