У меня есть простое промежуточное ПО Node.js, которое я хотел бы проверить, правильно ли оно обрабатывается.
Простое промежуточное ПО
module.exports = (argumentOne, argumentTwo) => (req, res, next) => {
if (!argumentOne || !argumentTwo) {
throw new Error('I am not working');
};
req.requestBoundArgumentOne = argumentOne;
req.requestBoundArgumentTwo = argumentTwo;
next();
};
Я бы хотел протестировать это промежуточное ПО, используя mocha, chai и sinon, но я просто не могу понять, как проверить эту внутреннюю функцию.
Я попробовал следующий подход
describe('[MIDDLEWARE] TEST POSITIVE', () => {
it('should work', () => {
expect(middleware('VALID', 'TESTING MIDDLEWARE')).to.not.throw();
});
});
describe('[MIDDLEWARE] TEST NEGATIVE', () => {
it('shouldn\'t work', () => {
expect(middleware('INVALID')).to.throw();
});
});
В моем ПОЛОЖЕНИИ ДЛЯ ТЕСТА я знаю, что этот код действителен, но все равно выдает следующую ошибку
AssertionError: expected [Function] to not throw an error but 'TypeError: Cannot set property \'requestBoundArgumentOne\' of undefined' was thrown