我正在尝试对创建 JWT 的方法进行单元测试,并且在此过程中我试图模拟出将用于创建 JWT 的用户访问令牌。这是我的方法和测试:
returnToken(expressRequestObject) {
const payload = { userAccessToken: req.user.userAccessToken, userID: req.params.userID};
return jwt.sign(
payload,
SECRET,
{ expiresIn: '30d' },
);
}
测试代码:
describe('returns a token', function() {
it('should return a token', function() {
const requestObject = httpMocks.createRequest({params: {userID: '1234'}});
requestObject.user.userAccessToken = 'xivjioefv.dvedv.adsvdv';
const a = authenticatorClass.returnToken(requestObject);
console.log(a);
});
我正在使用 httpMocks 创建一个模拟请求对象。我无法通过此测试,因为它错误地说TypeError: Cannot set property 'userAccessToken' of undefined
. 我在这里做错了什么?有没有更好的方法来模拟访问令牌并使此测试通过?TIA