3
現在、一般的なテストを行うことを学んでおり、jsonwebtokenを認証する高速ミドルウェアをどのようにテストするのかよくわかりません。高速ミドルウェアは基本的には関数なので、理論上は単体テスト可能でなければなりません。誰かがそうする方法を私に見せてもらえますか?ここまでは私のミドルウェアです。私は現在、テストフレームワークとしてmochaとchaiを使用しています。jsonwebtoken認証エクスプレスミドルウェアのテスト
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;
この機能をテストするには、どのライブラリを使用する必要がありますか?現在のところ、私のテストランナーとしてmochaを使用し、アサーションのためにチャイのみを使用しています。私は本当にシノンのような別の図書館を習う必要はありません。これらのライブラリを使用せずに現在の機能をテストすることは可能ですか? – Nate
私は私の例ではsinonを使用しませんでした。だからもちろん、そのようにテストすることはできます。 sinonのようなスパイは、私の例のnext()のように、関数が呼び出されているかどうかを簡単にチェックできるようにしています。しかし最初はモカとチャイを使うだけでいい。 – YLS