Здравствуйте, мир через тестовое развитие (TDD)
Выберите язык программирования (может быть, тот, который вы в первую очередь используете на работе) … Насколько жестко/просто будет выполнить эту ката?
Я создал шаблон Hello World Python Kata: Привет Мир Ката
Если вы уже знакомы с TDD, агрегатами и/или издевательства, то это кажется абсурдным упражнением. Тем не менее, эта небольшая программа достаточно, чтобы осуществлять каждое правило тестирования и издевательства и издевательства на каждое правило TDD Plus. Это фундаментальные основы TDD!
Намерение этой статьи – определить, затем пройти через одно решение к этой кате.
Ожидаемое поведение
Создайте программу, которая выводит на консоль, «Hello World».
Ограничение
Три правила TDD, как описано в дяди Боб
- Вам не разрешено писать любой производственный код, если не состоит в том, чтобы сделать пропускной проход неспособности.
- Вам не разрешено писать больше теста на единицу, чем достаточно, чтобы провалиться; и сбои компиляции являются сбоями.
- Вам не разрешено писать еще более изготовленный код, чем достаточно, чтобы пройти тест с ограниченными возможностями.
1: Добавить тест, чтобы подтвердить файл hello_world существуют
Начните с создания тестового файла hello_world_test.py Отказ Утверждайте ничего больше, чем существует файл, используя оператор импорта. 1-й + 2-я правило TDD
import hello_world
Тест не удается – ModuleNotFoundError: Нет модуля по имени «Hello_World»
2: Добавить hello_world.py file.
Создать hello_world.py как пустой файл. 1-й + 3-й правило TDD
# no code, just a new file
тестовые пропуски
3: Добавить неудачный тест с MOCK TOVES.PRINT
Напечатанная напечатана Python, вызывается, когда вызывается функция «Print». Обновите тест на Макет Это встроенный … 2-е правило TDD
from unittest.mock import patch @patch('builtins.print') def test_hello_world(mock_print): import hello_world mock_print.assert_called_with('hello world')
Тест не удается : AssertionError: Ожидаемый звонок: Печать («Hello World»)
Напишите код функции !!!
print('hello world')
тестовые пропуски
5: Прибыль! (Выполнено)
Hello World – это место, где начинаются большинство программных инженеров на любом новом языке. В Python это просто «печать (« Hello World »)».
Тем не менее, одна строка кода функций достаточно, чтобы разоблачить основы TDD!
Разработка, ориентированная на тестирование – это методология программирования, которая занимает несколько минут, но карьера для освоения …
Что касается сопротивления TDD :
Теперь большинство программистов, когда они сначала услышали об этом технике, подумайте: «Это глупо!» «Он собирается замедлить меня, это пустая трата времени и усилия, она будет держать меня от мышления, это будет держать меня от проектирования, это просто сломает мой поток». Однако подумайте о том, что произойдет, если вы вошли в комнату, полную людей, работающих таким образом. Выберите любого случайного человека в любое случайное время. Минуту назад весь их код работал.
Оригинал: “https://dev.to/dev3l/the-hello-world-kata”