Я бы точно не назвал это «модульным тестированием», но у меня был некоторый успех с выполнением автоматических тестов для пользовательского интерфейса WinForms, а также для веб-интерфейса с использованием WatiN.
Предполагая, что вы можете получить дескриптор для окна приложения, которое вы хотите протестировать, вы сможете написать много кода на C # для тестирования функциональности пользовательского интерфейса.
Многие люди осуждают идею запуска автоматических тестов для пользовательского интерфейса, потому что их так много, что вы не можете протестировать таким образом. Например, ни один автоматический тест не обнаружит, что шрифт некрасивый, какой-то текст сбивает с толку, или кнопка слегка смещена от центра. Нет сомнений, что для такого рода вещей вам обязательно нужен умный человек, смотрящий на экран.
Однако, если оставить этот тип тестирования, определенно существует большой набор повторяющихся тестов, которые можно автоматизировать и проводить регулярно. В большинстве крупных приложений имеется целая партия сценариев регрессионного тестирования, которые должны выполняться вручную каждый раз, когда выходит новая версия. Эти тесты - обычно то, что вы могли бы обучить обезьяне, просто список инструкций, чтобы щелкнуть по этой ссылке, ввести текст, нажать эту кнопку, проверить полученное сообщение и т. Д. Эти вещи являются ужасной тратой времени вашего тестировщика QA, и делает их несчастными, поэтому, если они могут быть автоматизированы, отлично. Эти типы тестов должны быть в состоянии автоматически запускаться вашим сервером сборки каждый день, и их можно сделать намного более тщательными, чем любое ручное тестирование.
Опять же, он не найдет странных неожиданностей, но придаст вам определенный уровень уверенности в том, что ваши небольшие изменения не сломали какой-то другой экран, о котором вы никогда не слышали на другой стороне приложения.
Конечно, это приводит к более продолжительной работе для разработчиков, поскольку небольшие изменения в приложении могут нарушить тесты по глупым причинам, как и любое автоматическое тестирование, но это должно сэкономить вам кучу времени на тестирование и отладку. Стоит ли это того для вас, решать вам, но я думаю, что это соображение, которое не следует отклонять так быстро, как вы обычно видите.