Вы можете сделать то же самое с веб-формами, просто те, кто не знает лучше, пишут код, который не может быть протестирован таким образом.
Нет причин иметь бизнес-логику в классе codebehind. То же самое с логикой доступа к данным. Даже здесь, это позволяет вам тестировать части приложения, наиболее подверженные как ошибкам, так и тестированию.
Некоторые могут сказать, что это не позволяет вам проверять нажатия кнопок и другие события пользовательского интерфейса. Если вы хотите сделать это, то вы можете создать свой собственный MVC или MVP или другой подобный шаблон, который использует отдельный интерфейс для действий пользовательского интерфейса. Затем выполните точно такой же тест, как и при использовании ASP.NET MVC.
А у вас все еще есть проблема невозможности протестировать код на стороне клиента.