Меня беспокоит «честность» теста при выполнении TDD. TDD это
- Напишите красный тест
- Напишите достаточно кода, чтобы сделать его зеленым
- Рефакторинг и пусть тест зеленый
Все идет нормально. Теперь вот пример применения принципа выше, такие примеры уже встречались в учебнике и в реальной жизни:
Я хочу убедиться, что текущая электронная почта пользователя отображается на странице по умолчанию моего веб-приложения.
- Напишите красный тест: «[email protected]» отображается внутри default_page.html.
- Напишите достаточно кода, чтобы сделать его зеленым: жестко закодируйте «[email protected]» внутри default_page.html.
- Рефакторинг путем реализации get_current_user(), некоторого другого кода в некоторых других слоях и т. д., оставив тест зеленым.
Я «в шоке» от шага 2. Здесь что-то не так: тест зеленый, даже если на самом деле ничего не работает. Здесь чувствуется запах теста, это означает, что, возможно, в какой-то момент кто-то сможет взломать производственный код, не нарушая тестовый набор.
Что мне здесь не хватает?