小编Fru*_*rai的帖子

如何使用护照身份验证对快速路线进行单元测试

一个单元如何测试依赖于护照身份验证的快速路由器以调用辅助方法?

我是表达单元测试的新手,并且我已经看到了很多实际命中服务器以调用该方法的代码。但这不会使它成为集成测试吗?这最终归结为我对快速单元测试的最佳实践缺乏了解。

我试图只是模拟护照,但这没有用,因为我需要进行回调。我也尝试过使用 rewire 并尝试测试辅助方法,但我认为这似乎也不起作用,因为文件包装在 module.export 中。

任何帮助在这里将不胜感激。

我正在尝试单元测试的文件:

module.exports = function (inject) {
var router = require('express').Router();
var app = inject.app;

return router.get('/', app.passport.authenticate('bearer', { session: false }), [editContentCheck, getUser]);

function editContentCheck(req,res,next) {
    if(req.authInfo.scope.indexOf('readOwnUser') == -1) {
        res.statusCode = 403;
        return res.end('Forbidden');
    }
    return next();
}

function getUser(req, res) {

    var authHeader = req.headers.authorization.split(' ');
    var token = authHeader[1];
    var models = require('../models');

    models.AccessToken.getAccessToken(token,function(err,tokenObj) {
        models.User.getUser(tokenObj.userId, function(err, user) {
            if (err) { return done(err); }
            if (!user) { return …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocha.js node.js express passport.js

5
推荐指数
1
解决办法
5690
查看次数

标签 统计

express ×1

mocha.js ×1

node.js ×1

passport.js ×1

unit-testing ×1