Да, я прочитал «Связанные вопросы» в поле выше после того, как набрал это =). Они все еще не помогли мне так сильно, как мне бы хотелось, поскольку я понимаю, в чем разница между ними - я просто не уверен, что мне это нужно в моем конкретном случае.
Итак, у меня есть полностью протестированное модульное (простое и маленькое) приложение. У меня есть некоторый класс 'Job' с единственным общедоступным методом Run () + ctors, который принимает электронную таблицу Excel в качестве параметра, извлекает данные, проверяет базу данных, чтобы выяснить, есть ли у нас эти данные, и если нет, делает запрос сторонний поставщик принимает этот ответ, помещает его в базу данных и затем завершает работу (снова обновляет базу данных)
У меня есть IConnection для общения с поставщиком, IParser для анализа файлов excel / vendor, IDataAccess для доступа ко всем базам данных. Мой класс Job является худым и подлым и не выполняет много логики, хотя на самом деле он выполняет всю логику, на самом деле он просто «цепляет данные» к составным объектам ...
Таким образом, все составные объекты сами проходят модульное тестирование, включая DAL, и даже мой метод Run () в классе Job полностью тестируется модулем, используя mocks для всех возможных путей кода.
Итак, нужно ли мне проводить какие-либо интеграционные тесты на данном этапе, кроме запуска приложения, чтобы посмотреть, работает ли оно? Считаются ли мои тесты метода Run () с mocks моими интеграционными тестами? Или мой интеграционный тест должен использовать реальные экземпляры вместо макетов, а затем в конце утверждать значения базы данных на основе известного ввода в таблицу Excel? Но это то, что все мои модульные тесты уже делают (только в отдельных местах, и проверенный тест Run гарантирует, что эти места «соединяются»)! Следуя методологии СУХОЙ, я просто не вижу необходимости проводить интеграционный тест здесь ...
Я что-то упускаю из виду, ребята? Еще раз большое спасибо ...