Android Перехватчик перехватчиков переоснащен с помощью инструментальных средств происходит случайно - PullRequest
0 голосов
/ 29 мая 2020

Я видел свою долю странного поведения в android студии и gradle за эти годы. Его можно просто добавить в кучу.

В последнее время я работал над улучшением своей разработки, написав тесты. Раньше я писал много модульных тестов, но никогда не писал UI-тесты. Я работаю над новым проектом и решил, что сейчас самое подходящее время. Поработав с материалами Espresso и MockWebServer, я здесь, ошеломленный его случайной функциональностью.

Когда я запускаю приложение в отладке, API вызывает go там, где они должны, и просмотры раздуваются, как я ожидал. Я написал тест для представления, на которое только что смотрел, и он работает, как ожидалось. Конечно, есть некоторые проблемы, но в целом это работает.

Удалите приложение с устройства. Запустите тест, который устанавливает приложение на устройство без кэшированных данных. Этот тест теперь не проходит, поскольку перехватчик не обновил {userId} в пути /users/{userId}/payments. Удалите приложение и запустите его в режиме отладки, посмотрите на представление, вроде все нормально. Запустите тест, не удаляя его предварительно, тест работает нормально. Перехватчик работает как положено. круто круто

Хорошо, после удаления запустите другой тест просмотра. Это вызывает /auth/login, и Interceptor работает, он добавляет тело, как ожидалось, и получает фиктивный ответ. идет дальше. Затем вызывает другой API /users/{userId}/dashboard. Перехватчик выходит из строя. Теперь он вставил токен из ответа на вход в поле userId. Регистрация этого в Interceptor показывает, что при вставке он имеет правильный userId. Не уверен, что здесь произошло.

Кажется, что-то не так с последней проблемой, перезапустите приложение в режиме отладки. Что ж, теперь перехватчик вообще не работает. Мне нужно удалить приложение с устройства и повторно запустить приложение в режиме отладки, прежде чем перехватчик снова заработает правильно.

...