Я пишу модульный тест мокко для моего экспресс-маршрутизатора. Я обнаружил, что как бы я ни пытался заглушить промежуточное программное обеспечение, оно все равно выполняет код промежуточного программного обеспечения. Вот мой роутер и тест, может кто разобрался?
Маршрутизатор:
import { aMiddleware, bMiddleware, cMiddleware } from '../middleware.js';
router.post('/url', aMiddleware, bMiddleware, cMiddleware, function(req, res) { ... }
Промежуточное ПО:
AuthMiddleware.aMiddleware = async (req, res, next) => {
console.log('in real middleware');
next();
}
Тест:
var authMiddleware = require('../../middleware/auth.js');
describe('Test', async () => {
before(function (done) {
_STUB_MIDDLEWARE_A = sinon.stub(authMiddleware, 'aMiddleware');
_STUB_MIDDLEWARE_A.callsArg(2);
}
after(function (done) {
_STUB_MIDDLEWARE_A.restore();
}
}
терминал покажет console.log('в реальном промежуточном программном обеспечении') в промежуточном программном обеспечении