Я хочу сказать вам, что эта единственная функция getData
- один из самых неприятных и уродливых фрагментов кода.Вы спрашиваете, как проверить это.Ну, угадайте, что моя рекомендация будет?Refactor.
Для рефакторинга этого кода вам потребуется тест покрытия .
Причин для рефакторинга множество:
- Зависимость от стороннего фреймворка.
- Зависимость от внешнего сервиса.
getData
имеет слишком много откликов.
a.Войдите во внешнюю службу, используя стороннюю платформу.
b.Создайте запрос для внешней службы.
c.Разберите ответ на запрос от внешней службы.
Как вы изолировали свой код от изменений в сторонней платформе и от внешней службы?
Вы действительно должны взглянутьв книге Майкла Пера. Эффективная работа с устаревшим кодом
[EDIT]
Моя точка зрения на вас (спойлер идет), это то, что сэтот код вы никогда не сможете получить настоящий модульный тест.Это из-за зависимости от внешнего сервиса.Модульный тест не имеет контроля над сервисом или данными, которые он возвращает.Модульный тест должен быть в состоянии выполнить так, чтобы каждый раз, когда он выполняет, его результат был последовательным.С внешним сервисом это может быть не так. У ВАС НЕТ КОНТРОЛЯ ЗА ЧТО ВОЗВРАЩАЕТСЯ ВНЕШНИЙ СЕРВИС.
Что вы делаете, если сервис не работает?Модульный тест FAIL .
Что делать, если возвращаются результаты изменений?Модульный тест FAIL .
Результаты модульных тестов должны оставаться согласованными от выполнения к выполнению.В противном случае это не модульный тест.