Автор оригинала: Victor de la Cruz.
Когда мы пишем новое программное обеспечение, мы хотим убедиться, что код имеет качество и соответствует ожиданиям клиентов, вот почему я хочу немного поговорить о разработке на основе тестирования. Я должен сказать, что я меняю поведение, когда пишу новый код, я все еще изучаю TDD, так что вот что я должен сказать об этом:
- TDD поможет нам свести к минимуму ошибки в коде
- TDD позволит нам соответствовать спецификациям заказчика
- С помощью TDD мы пишем модульный и проверяемый код
- С TDD мы сначала думаем о тестовых случаях, которые наш код должен обрабатывать
До того, как я узнал о TDD, я писал код, а затем писал тесты для проверки этого кода, но теперь я изменил это с помощью следующих шагов:
- Напишите код без какой-либо реализации вообще
- Напишите тестовые примеры
- Запуск тестовых случаев (тестовые случаи завершатся неудачно)
- Напишите реализацию для классов/методов (тестовые случаи должны пройти)
- Рефакторинг кода (улучшение реализаций)
Для этого примера я возьму следующее репо с github тест-приложение
Для того чтобы написать тест, давайте представим, что требуется: и конечная точка для создания новых клиентов, и адрес электронной почты должен быть уникальным для каждого клиента, и имя клиента не должно быть пустым.
На следующем изображении мы видим последовательность, необходимую для создания нового клиента.
Как вы можете видеть на диаграмме, мы используем три уровня: контроллер, сервис и репозиторий и, конечно же, картограф, который преобразует объект между сущностью и представлением. Первым шагом будет создание картографа без реализации и написание необходимых тестов, затем мы увидим, как тест проваливается, и после этого мы должны исправить все тесты, добавив новый код в наш картограф.
- Картограф клиентов
Тест картографирования клиентов: Тестовые примеры, о которых я думаю, таковы: когда сущность/представление недопустимы и когда допустимы параметры
- Запустить тест
Конечно, мы можем добавлять все больше и больше тестовых примеров и улучшать реализацию, что это ваша домашняя работа, теперь давайте напишем тестовые примеры для нашего сервиса, в этом случае мы будем использовать насмешки, помните, что нам нужно тестировать каждый слой изолированно.
- Пустая служба
- проверка-запуск-не удалась.png
проверка-исправления.png Напишите тестовые примеры для сохранения
сохранения метода Напишите тестовые примеры для
Вот и все, теперь у нас есть картограф и уровень обслуживания с модульным тестированием, с предыдущими примерами вы можете добавить модульное тестирование для контроллера, возможно, вам захочется посмотреть репозиторий git и улучшить реализацию и тестовые случаи.
Спасибо, что прочитали vcg
Оригинал: “https://www.codementor.io/@vcg_cruz/how-i-m-learning-tdd-10c6o9h57j”