Вы можете создать архитектуру типа модель-вид-контроллер или модель-вид-презентатор без использования полноценного фреймворка. Вы уже узнали, что юнит-тестирование юнит-компонентов сложно. Есть способы обойти это, но вы, вероятно, не хотите идти по этому пути. Обычно это делает ваши тесты очень трудными для обслуживания, больше кошмаров на обслуживание - это то, без чего программисты могут обойтись: -)
Попробуйте выделить функциональность, которую вы хотите протестировать, в классе «контроллер» или «презентатор». Затем проверьте этот класс. Чтобы сделать его более тестируемым, вы можете скрыть класс usercontrol (представление) за интерфейсом и заставить контроллер или докладчика общаться с представлением через интерфейс. Таким образом, вы можете смоделировать представление в ваших тестах.
Я знаю, что это звучит как большая работа, и кажется, что это обходной путь, но если вы привыкнете к этому, это действительно хорошая архитектура, которая значительно упрощает изменение поведения пользовательского интерфейса. Вы всегда можете начать использовать «настоящий» MVC-фреймворк, когда вам это действительно необходимо: -)