我在 Express 中有以下内容
//index.js
var service = require('./subscription.service');
var auth = require('../auth/auth.service');
var router = express.Router();
router.post('/sync', auth.isAuthenticated, service.synchronise);
module.exports = router;
我想覆盖或模拟 isAuthenticated 以返回此
auth.isAuthenticated = function(req, res, next) {
return next();
}
这是我的单元测试:
it('it should return a 200 response', function(done) {
//proxyquire here?
request(app).post('/subscriptions/sync')
.set('Authorization','Bearer '+ authToken)
.send({receipt: newSubscriptionReceipt })
.expect(200,done);
});
我曾尝试使用 proxyquire 模拟 index.js - 我想我需要存根路由器?我也尝试在测试中覆盖
app.use('/subscriptions', require('./api/subscription'));
必须有一种简单的方法来模拟它,所以我不需要对请求进行身份验证。有任何想法吗?