Как известно, TDD означает "сначала написать тест, а затем написать код". И когда дело доходит до модульного тестирования, это нормально, потому что вы ограничены внутри "единицы".
Однако, когда дело доходит до пользовательского интерфейса, написание функциональных тестов заранее делает меньше смысла (для меня). Это связано с тем, что функциональные тесты должны проверять (возможно, длинный) набор функциональных требований. Обычно это может быть несколько экранов (страниц), предварительных условий, таких как "вход в систему", "недавно вставленная запись" и т.д.
Разработка, основанная на испытаниях, трудно использовать в ситуациях, когда для определения успеха или неудачи требуются полные функциональные тесты. Примерами этого являются пользовательские интерфейсы, программы, работающие с базами данных, и некоторые, которые зависят от конкретных сетевых конфигураций.
(Конечно, Wikipedia не является "авторитетом", но это звучит очень логично.)
Итак, любые мысли, или лучше - опыт, с функциональными тестами - сначала для пользовательского интерфейса, а затем код. Это работает? И это "боль"?