В старые времена я тестировал веб-формы aspnet, используя шаблон Model View Presenter. Я смог протестировать код с этим шаблоном, потому что я абстрагировал условную логику / циклы / и т. Д. В отдельный класс, который не жил в рамках веб-форм.
То, что осталось в коде веб-форм, было не более чем несколькими свойствами и вызовом загрузки страницы для инициализации самого класса презентатора.
Тогда каждый обработчик события просто передавал работу классу докладчика.
Я провел много времени с этим шаблоном и обнаружил, что он делает вещи более удобными для тестирования, но это большая работа по сравнению с aspnet mvc