Я готовлюсь создать свой первый модульный тест, или, по крайней мере, я так об этом думал. Прочитав на этих выходных информацию о модульном тестировании, я подозреваю, что на самом деле хочу провести интеграционное тестирование. У меня есть компонент черного ящика от стороннего поставщика (например, API цифровых весов), и я хочу создать тесты для проверки его использования в моем приложении. Моя цель — определить, правильно ли работает недавно выпущенная версия указанного компонента при интеграции в мое приложение.
Использование этого компонента скрыто глубоко в коде моего приложения, и методы, использующие его, было бы очень сложно протестировать без обширного рефакторинга, который я не могу сделать в настоящее время. Я планирую, в конце концов. Принимая во внимание этот факт, я планировал написать пользовательские модульные тесты (т.е. не производные от методов или свойств одного из моих классов), чтобы провести этот сторонний компонент через те же операции, которые потребуются от него моему приложению. Я подозреваю, что этим способом я упускаю из виду значительное преимущество модульного тестирования, но, как я уже говорил ранее, я не могу сейчас остановиться и реорганизовать эту конкретную часть моего приложения.
Мне остается задаться вопросом, могу ли я по-прежнему писать модульные тесты (используя Visual Studio) для тестирования этого компонента или это противоречит лучшим практикам? Из моего чтения кажется, что инструменты модульного тестирования в Visual Studio в значительной степени предназначены именно для этого - методов модульного тестирования и свойств компонента.
Я хожу кругами в голове, я не могу определить, хочу ли я модульного теста (стороннего компонента) или интеграционного теста? Меня привлекают модульные тесты, потому что это управляемая система для выполнения тестов, но я не знаю, подходят ли они для того, что я пытаюсь сделать.