Книга: Выразительный JavaScript
Тестирование
Тестирование
Если язык не собирается помогать нам в поиске ошибок, приходится искать их сложным способом: запуская программу и наблюдая, делает ли она что-то так, как надо.
Делать это вручную, снова и снова – верный способ сойти с ума. К счастью, часто возможно написать другую программу, которая автоматизирует проверку вашей основной программы.
Для примера вновь обратимся к типу Vector
.
function Vector(x, y) {
this.x = x;
this.y = y;
}
Vector.prototype.plus = function(other) {
return new Vector(this.x + other.x, this.y + other.y);
};
Мы напишем программу, которая проверит, что наша реализация Vector
работает, как нужно. Затем после каждого изменения реализации мы будем запускать проверочную программу, чтобы убедиться, что мы ничего не сломали. Когда мы добавим функциональности (к примеру, новый метод) к типу Vector
, мы добавим проверок этой новой функциональности.
function testVector() {
var p1 = new Vector(10, 20);
var p2 = new Vector(-10, 5);
var p3 = p1.plus(p2);
if (p1.x !== 10) return "облом: значение x не то";
if (p1.y !== 20) return "облом: значение y не то";
if (p2.x !== -10) return "облом: отрицательное значение x не то";
if (p3.x !== 0) return "облом: результат сложения x не тот";
if (p3.y !== 25) return "облом: результат сложения y не тот";
return "всё пучком";
}
console.log(testVector());
// ? всё пучком
Написание таких проверок приводит к появлению повторяющегося кода. К счастью, есть программные продукты, помогающие писать наборы проверок при помощи специального языка, приспособленного именно для написания проверок. Их называют testing frameworks.
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Разработка через тестирование и разработка с тестами
- Часть III. Шаблоны разработки через тестирование
- Приложение 1 Тестирование ПК при включении
- Тестирование модема
- Качество ? Тестирование
- 8. Тестирование привычки. Где искать возможности формирования привычек?
- АБ-тестирование
- Тестирование функций
- 13.3.6. Тестирование переводов в персональном каталоге
- Сплит-тестирование
- 15.6. Тестирование программ