Я переоборудую юнит-тестирование в довольно сложную систему, разработанную и написанную другими разработчиками на VB.net. Я пытаюсь разработать модульные тесты для форм GUI, используя NUnit и расширение NUnit Forms. (Я смотрел на примеры c #, которые довольно легко переносить, если у вас есть решение, но вы не знаете синтаксис VB, если он использует классы NUnit)
Я попытаюсь объяснить, что я делаю, но сначала краткое описание программы. Он в основном контролирует активность сервера. Вам необходимо подключиться к серверу через модальную форму с полями IP и Port (среди прочих). После подключения к серверу другие части программы разблокируются и становятся доступными (например, конфигурация сервера).
Требуемый процесс: загрузка программы> нажмите кнопку подключения> загрузка формы модального подключения> введите сведения> нажмите кнопку ОК, чтобы подключиться> обновления главной формы для входа в систему> другие функции
Проблема в том, что я не могу проверить функциональность формы подключения, а затем функциональность программы, вошедшей в систему. Я могу проверить, что он загружает модальную форму подключения правильно; вводит детали и нажимает ОК (пока все в порядке), но, похоже, логически не прогрессирует программу. Модальная форма просто снова закрывается, по-видимому, без запуска кода подключения из серверной части программы, и я снова в главном меню, ни к чему не подключился.
У меня такое ощущение, что я либо пропустил что-то действительно очевидное, либо это просто невозможно в NUnit. Я бродил по интернету в поисках чего-то подобного, но самым близким был еще один SO-поток, который был действительно общим. Не имея возможности реально протестировать зарегистрированную версию программы, я нахожусь в серьезном затруднении.
Другой проблемой является обработка окон сообщений, которые не имеют уникальных идентификаторов (например, «вы уверены, что хотите выйти?»); это также, кажется, главная боль в заднице с NUnit
(Если это имеет какое-то значение, я запускаю тесты как отдельный проект, используя ссылку на исполняемый файл построенного проекта, а не на фактический источник)
При необходимости можете опубликовать мой тестовый код.