Кажется, что вы намерены сделать больше интеграционного теста, чем модульного теста. Это не точное определение формулировки, но это имеет значение. Модульное тестирование означает тестирование методов изолировано, в среде, называемой фикстурой, созданной только для одного теста, завершенной, а затем удаленной. Другой экземпляр прибора будет создан заново, если в следующем случае потребуется такой же прибор. Это делается для того, чтобы изолировать тесты, чтобы ошибка в одном тесте не влияла на результат последующих тестов.
Обычно один тест состоит из трех шагов:
- Организуйте - подготовьте приспособление: создайте экземпляр класса для тестирования, возможно, другие необходимые объекты
- Act - вызвать метод для тестирования
- Утвердить - проверить ожидания
Модульные тесты обычно не используют внешние ресурсы, такие как файлы и базы данных. Вместо этого фиктивные объекты используются для удовлетворения зависимостей тестируемого класса.
Однако, в зависимости от типа вашего приложения, вы можете попробовать запустить тесты из самого приложения. Это не «чистое» модульное тестирование, но в любом случае оно может быть ценным, особенно если код не был написан с учетом модульного тестирования, он может быть недостаточно «гибким» для модульного тестирования.
Для этого требуется специальный режим выполнения, например, с параметром «-test», который обычно инициализирует приложение, а затем вызывает тесты, которые будут имитировать входные данные и использовать утверждения для проверки того, что приложение отреагировало должным образом. Аналогичным образом можно вызвать код выключения и проверить с помощью утверждений, закрыто ли соединение с базой данных (если объекты не удалены).
У этого подхода есть несколько недостатков по сравнению с юнит-тестами: он зависит от конфиг-файлов (программа может вести себя по-разному в зависимости от параметров), от базы данных (от ее содержимого и от возможности подключения к ней), тесты не изолированы ... Первые две проблемы можно преодолеть, используя значения по умолчанию для конфигурации и подключение к тестовой базе данных в тестовом режиме.
person
philant
schedule
05.01.2010