У меня есть проблема с «честностью» теста при выполнении TDD. TDD являетсяTDD и «честность» теста
- WRITE красный тест
- Написать только достаточно код, чтобы сделать его зеленым
- Refactor и пусть тест зеленый
До сих пор так хорошо. Теперь вот пример применения принципа выше, такой пример уже был встречен в учебнике & real life:
Я хочу проверить, что текущий адрес электронной почты пользователя отображается на странице по умолчанию моего webapp.
- Написать красный тест: «[email protected]» отображается в default_page.html
- Написать только достаточно код, чтобы сделать его зеленым: жёстко «[email protected]» внутри default_page.html
- Рефакторинг, реализующий get_current_user(), другой код в некоторых других слоях и т. Д., Позволяя тестировать зеленый.
I «шокирован» шагом 2. Здесь что-то не так: тест зеленый, даже если ничего не работает. Здесь присутствует тестовый запах, это означает, что, возможно, в какой-то момент кто-то может сломать производственный код, не нарушая набор тестов.
Что мне здесь не хватает?
Что заставляет вас думать, что жесткая кодировка текста на странице имеет значение «Напишите достаточно кода, чтобы сделать его зеленым»? Хотя, конечно, у него есть преимущество тестирования того, что тест работает. –
@ T.J.Crowder, потому что, к сожалению, это такая глупость, которую придерживаются известные книги по TDD. –
@OliverCharlesworth: Ну, как я уже сказал, он имеет преимущество тестирования теста, что очень важно ... –