Я получаю TypeError неопределенный для свойства 'false' в результатах моего модульного теста - PullRequest
0 голосов
/ 17 мая 2019

Я изучаю юнит-тестирование с мокко и чай. У меня большинство тестов пройдено, но 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)

...