Автоматизированное тестирование js как писать код?
Вот на скрине зелёные тесты, как самому написать такие для функции?
Работа и карьера
Программирование
Компьютеры и связь
Учёба и образование
Развлечения
Ваш вопрос
Вот на скрине зелёные тесты, как самому написать такие для функции?
Для первого опыта сохраните файл sum.test.cjs:
const test = require('node:test');
const assert = require('node:assert/strict');
function sum(a, b) {
return a + b;
}
test('складывает отрицательное и положительное число', () => {
assert.equal(sum(-2, 5), 3);
});
Запустите node --test sum.test.cjs. Если фактический результат отличается от ожидаемого, тест завершится ошибкой. В реальном проекте функцию обычно импортируют из её рабочего файла, чтобы не проверять отдельную копию реализации. Добавьте случаи, отражающие договорённости функции: например, работу с нулём. Если строки должны отклоняться, сначала задайте такое требование и реализуйте проверку типов. Не ожидайте отказа от приведённой sum: оператор плюс сам по себе умеет соединять строки.
Пишите тесты как проверку обещанного поведения программы. Сначала сформулируйте, что функция должна вернуть для конкретных входов, затем сравните ожидание с фактическим результатом. Для небольших функций в Node.js можно начать со встроенного test runner и строгих утверждений из node:assert/strict.
Выберите несколько содержательных случаев. У расчёта суммы это могут быть обычные числа, ноль и отрицательное значение. У проверки формы полезнее пустое поле, допустимая строка и ошибочный формат. Не добавляйте десятки одинаковых случаев, если они подтверждают одно и то же правило и не дают новой информации.
Держите рабочую функцию в отдельном модуле и импортируйте её в тест. Если переписать реализацию внутри тестового файла, тест может успешно проверять собственную копию, пока настоящий код уже изменился. Ожидаемый ответ тоже желательно задавать независимо, а не вычислять той же формулой с теми же возможными ошибками.
Асинхронный тест должен ждать проверяемую работу. Верните Promise или используйте async и await в поддерживаемой форме теста. Иначе проверка может завершиться раньше, чем появится результат или ошибка. Для отказа операции проверяйте именно ожидаемый отказ, а не любой случайный сбой.
Разделяйте уровни проверки. Чистую функцию удобно тестировать без браузера. Для кнопки, навигации или отправки формы полезен тест в браузере, который воспроизводит действия пользователя и проверяет наблюдаемый результат. Проверка одной функции не подтверждает, что страница правильно её вызывает.
После исправления ошибки сохраните небольшой тест, который воспроизводит этот случай. Затем включите нужную команду запуска в обычный процесс работы проекта. Зелёный результат означает выполнение выбранных проверок, но не доказательство отсутствия всех возможных ошибок.
Начните с функции с понятным входом и результатом. Запишите ожидаемое поведение в тестах, используя утверждения, затем запускайте их автоматически. В Node.js есть встроенные node:test и node:assert/strict. Для браузерной формы понадобится среда с браузером или подходящий инструмент проверки интерфейса. Выбирайте тест под поведение, которое хотите подтвердить, а не только под строку кода.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Ответить на вопрос