После того, как вы обновили пример кода, как я и просил, теперь я могу видеть более четко. Вы страдаете от типичной (не) проблемы с тестируемостью: ваш метод getFile
делает больше, чем просто получает файл. Он создает две зависимости как локальные переменные, делая их немоделируемыми, и, следовательно, весь метод в основном непроверяем.
Итак, вы хотите провести рефакторинг для лучшей тестируемости, чтобы иметь возможность использовать один метод тестирования, который я упомянул в моем первом комментарии:
- Если
requestCallback
и responseExtractor
могут быть введены через конструктор или установщик, вы можете ввести mock. - Если они созданы каким-то классом фабрики , вы можете заблокировать этот класс.
- В случае использования фабричного метода внутри самого тестируемого класса вы можете использовать шпион для класса и заглушить фабричный метод.
Для более общего обсуждения тестируемости и того, как тесты определяют дизайн приложения, см. Мой другой ответ здесь , разделы «Общие комментарии» и «Обновление».
Если что-либо из этого неясно, не стесняйтесь задавать связанные (!) дополнительные вопросы.