我正在与Mocha和Chai学习单元测试。我通过了大多数测试,但有1项测试因TypeError失败:无法读取未定义的属性'false'。
我在调用加法器时尝试添加第三个参数“ 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” 在上下文。 (test \ test-adder.js:34:7)