С существующим n-уровневым веб-приложением, использующим ASP.net WebForms, каков наилучший подход к принятию TDD в приложении. Каков хороший план для того, чтобы разработчики приняли решение двигаться вперед и писать тестовый код, а не игнорировать тесты, пока реализация TDD находится в подвешенном состоянии?

Зная, что будет большое «неопределенное» время низкого покрытия: для каких областей модели вы начинаете писать тесты в первую очередь? Критические области использования или новая разработка?

2
Glennular 29 Мар 2010 в 20:53
5
Tdd - это то, что с самого начала «вплетено» в общий дизайн. Ретроактивный tdd - это сложно.
 – 
Pierreten
29 Мар 2010 в 20:59
Возможный дубликат stackoverflow .com / questions / 342693 /…
 – 
George Stocker
31 Мар 2010 в 00:50
- Я бы даже сказал, что «ретроактивный tdd» так же невозможен, как «ретроактивное зачатие in vitro». Я думаю, что на самом деле спрашивают, как обеспечить покрытие существующего кода модульными тестами и как изменить процесс разработки на TDD.
 – 
JeffH
14 Апр 2010 в 23:14

2 ответа

Лучший ответ

Я согласен с womp, модульное тестирование и WebForms - это сложно. Особенно, если большая часть вашей логики встроена в код файлов.

Я счел полезным сначала создать функциональные тесты, используя что-то вроде Selenium. Имея приличное покрытие функциональных тестов, я могу начать рефакторинг, добавляя модульные тесты по ходу дела.

2
Keith Bloom 31 Мар 2010 в 00:49
Я согласен. Модернизация модульных тестов в этом контексте очень сложна. Однако дооснащение приемочных испытаний с помощью Selenium, WatiN или, возможно, новых инструментов тестирования VS2010 довольно просто.
 – 
Martin R-L
13 Апр 2010 в 17:14

Веб-формы ASP.Net, как известно, сложно создавать модульные тесты из-за встроенных зависимостей от статических объектов HttpApplication и HttpContext, а также нечеткой абстракции жизненного цикла страницы.

При этом всегда намного проще начать писать тесты для нового кода, чем тратить время на то, чтобы вернуться к старому коду. Старый код необходимо будет серьезно переработать, чтобы обеспечить надлежащее тестирование.

2
womp 29 Мар 2010 в 21:26