Как выполнить модульное тестирование этой функции с использованием TDD?

Когда функция находится внутри класса и модульного теста функция вычисляет, это дает мне некоторую ошибку. Как проверить функцию вычисления с использованием TDD? Пожалуйста, помогите мне.

1.calculation.js

export default class calculation {
    static  calculate(a, b) {
        var sum1 = this.addition(a, b);
        var sub1 = this.subtract(a, b);
        return {
             sum1: sum1, 
             sub1: sub1
        };
    }
    static addition (a, b) {
        var sum = a + b;
        return sum;
    }
    static subtract (a, b) {
        var sub = a - b;
        return sub;
    }
}

2.calculation.test.js

const calculate = require('../app/calculation');
describe('calculation', () => {
    let result;
    beforeEach(() => {
        result = calculate.calculate(100, 50);
    });
    it('correct sum of two number is', () => {
        expect(result.sum1).toBe(150);
    });
    it('correct subtract of two number is', () => {
        expect(result.sub1).toBe(50);
    });

});

ошибка...

● расчет ›правильная сумма двух чисел

TypeError: Cannot read property 'sum1' of undefined

  at Object.<anonymous> (__tests__/calculation.test.js:8:14)
  at tryCallTwo (node_modules/promise/lib/core.js:45:5)
  at doResolve (node_modules/promise/lib/core.js:200:13)
  at new Promise (node_modules/promise/lib/core.js:66:3)
  at tryCallOne (node_modules/promise/lib/core.js:37:12)
  at node_modules/promise/lib/core.js:123:15

● расчет ›правильное вычитание из двух чисел

TypeError: calculate.calculate is not a function

  at Object.<anonymous> (__tests__/calculation.test.js:5:18)
  at tryCallTwo (node_modules/promise/lib/core.js:45:5)
  at doResolve (node_modules/promise/lib/core.js:200:13)
  at new Promise (node_modules/promise/lib/core.js:66:3)
  at tryCallOne (node_modules/promise/lib/core.js:37:12)
  at node_modules/promise/lib/core.js:123:15

● расчет ›правильное вычитание из двух чисел

TypeError: Cannot read property 'sub1' of undefined

  at Object.<anonymous> (__tests__/calculation.test.js:11:14)
  at tryCallTwo (node_modules/promise/lib/core.js:45:5)
  at doResolve (node_modules/promise/lib/core.js:200:13)
  at new Promise (node_modules/promise/lib/core.js:66:3)
  at tryCallOne (node_modules/promise/lib/core.js:37:12)
  at node_modules/promise/lib/core.js:123:15

расчет ✕ правильная сумма двух чисел (3мс) ✕ правильное вычитание двух чисел (1мс)

Наборы тестов: 1 не пройден, 1 всего тестов: 2 не пройден, 2 всего снимков: 0 всего времени: 0,818 с, по оценкам 1 с. Выполнить все тестовые наборы. нпм ERR! Тест не пройден Смотрите выше для более подробной информации.

1 ответ

Я думаю, что вы задаете неправильный вопрос. Разработка через тестирование - это процесс разработки.

Вы не тестируете что-то с TDD, вы что-то строите, используя это.

Я рекомендую эту отличную статью о TDD. Я думаю, что это прояснит ситуацию.

Другие вопросы по тегам