У меня есть консольное приложение (которое позже будет установлено как служба Windows), которое в основном запускает бесконечный цикл, который читает сообщения из очереди и что-то делает с этим сообщением.Как интегрировать тестовое консольное приложение в решение?
Я хотел бы создать автоматизированный тестовый пример, чтобы запустить тестовое сквозное поведение. Мой вопрос: какой лучший способ запустить приложение в модульном тесте? Я использую Process.Start? или я могу напрямую ссылаться на Program.cs - static void main и запускать это?
идеи? образец кода был бы оценен, спасибо!
[Обновить: Да, я знаю, что это интеграционный тест. Я обновил название. Я уже отделил свою логику бизнес-логики. Значение интеграционного тестирования - это сделать это автоматическим способом. Это гарантирует, что все мои настройки конфигурации верны, там мои проблемы с версиями сборки в порядке, мои записи и доступ к базе данных, а также доступ к очереди и кэш-памяти и т. Д.]
В идеале у вас будет класс в вашей программе Program.cs, который будет работать для вас. Таким образом, вы Program.cs просто создали и вызывают любой метод в этом классе. Таким образом, если у вас есть зависимости в консольном приложении (например, данные), вы можете ввести их в свой модульный тест. –
Если вы говорите о ** модульном тестировании ** ... как насчет тестов для каждого отдельного класса (строго говоря) в вашем приложении? Вы не должны тестировать приложение вместе, а его компоненты. Также с угловыми футлярами ваше приложение (как черный ящик), вероятно, не получит/не получит. Для тестирования интеграции затем запустите приложение с помощью Process.Start(), вызвав его классы напрямую, это сломает тест, потому что ваш стенд будет/может сильно повлиять на его среду. –