0

我正在尝试对创建 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

4

1 回答 1

0

向此添加用户对象{{params: {userID: '1234'}},user: {userAccessToken: ''}}为我解决了这个问题

于 2021-05-21T21:31:05.020 回答