Я изучаю юнит-тестирование с мокко и чай. У меня большинство тестов пройдено, но 1 тест не пройден с TypeError: невозможно прочитать свойство 'false' из undefined.
Я попытался добавить третий параметр 'input [2]' при вызове сумматора, но все равно получаю ту же ошибку.
const adder = (a, b) => {
if (!(typeof a === 'number' && typeof b === 'number')) {
throw Error('Oh no!');
}
return a + b;
}
module.exports = adder;
const expect = require('chai').expect;
const adder = require('../adder');
describe('adder', () => {
it('should add two numbers', () => {
const useCases = [
{
a: 2,
b: 3,
expected: 5
},
{
a: 100,
b: 1000,
expected: 1100
},
{
a: 10,
b: -15,
expected: -5
}
];
useCases.forEach(function (input) {
const answer = adder(input.a, input.b);
expect(answer).to.equal(input.expected);
});
});
it('should give error if input not numbers', function () {
const notNumbers = [
['a', 1,]
['b', 2]
[2, false]
];
notNumbers.forEach(function (input) {
expect(function () {
adder(input[0], input[1]);
}).to.throw(Error);
});
});
});
Часть ожидаемого результата проходит, «это добавляет два числа»
сумматор
√ следует добавить два числа
1) должен выдавать ошибку, если ввод не числа
1) сумматор
должен выдавать ошибку, если ввод не числа:
TypeError: Невозможно прочитать свойство 'false' из неопределенного
в контексте. (тест \ тест-adder.js: 34: 7)