Как выполнить модульное тестирование этой функции с использованием 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. Я думаю, что это прояснит ситуацию.