Создавайте безошибочные приложения для Android

Тестирование — важная часть жизненного цикла программного обеспечения. Мы, разработчики, склонны ошибаться. Тестирование гарантирует, что наш код ведет себя так, как ожидалось. Это также помогает находить ошибки на ранней стадии, поддерживать стандарты кода и экономить время.

Во-первых, мы немного узнаем о MockWebServer и библиотеке утверждений правды.

Моквебсервер

Согласно официальной документации:

Эта библиотека упрощает проверку правильности действий вашего приложения при вызовах HTTP и HTTPS. Он позволяет вам указать, какие ответы возвращать, а затем проверить, что запросы были выполнены должным образом.

Если вы хотите больше, пожалуйста, проверьте здесь.

Правда

Согласно официальной документации:

Truth — это библиотека для выполнения утверждений в тестах. Истина принадлежит и поддерживается командой Гуава. Он используется в большинстве тестов собственной кодовой базы Google.

Если вы хотите узнать больше, проверьте здесь.

Покажите мне, что мы тестируем.

Это отличное приложение. Не так ли?

В этой статье мы будем использовать этот репозиторий GitHub. Не стесняйтесь проверить это.

TL;DR

  1. Добавьте зависимость MockWebServer, Truth и OKHTTP в build.gradle.
  2. Если в зависимости JUNIT существует знак плюс (+), удалите его и добавьте правильную зависимость.
  3. СоздатьImageResponse.json файл внутри app/src/main/resources папки
  4. Создать ImageApiServiceTest класс под app/test
  5. Настройте MockWebServer и напишите тест

Давайте проверим

Сначала добавьте зависимость Добавьте зависимость MockWebServer, Truth и OKHTTP в build.gradle. Пожалуйста, добавьте последнюю версию.

Для этого проекта мы используем API PEXELS. Мы проверим ниже ImageApiService

Это API, созданный с помощью Retrofit . Этот API будет использоваться для возврата результатов поиска в соответствии с запросом.

Создать MockResponse

Для тестирования нам нужно создать файл JSON с ответом API. Но, к счастью, мы можем получить ответ от поискового API PEXELS. Скопируйте его и создайте файл ImageResponse.json в папке app/src/main/resources.

Настройка MockWebServer

Создайте класс ImageApiServiceTest в тестовом пакете. Теперь мы настроим MockWebServer внутри ImageApiServiceTest.

Как следует из названия, Before позвонит в начале теста, а After позвонит, когда тест закончится. Итак, мы настроим MockWebServer и в Before и завершим работу в After. Мы видим, что Retrofit и ImageApiService используются для создания сервиса Fake API. Нам также нужно поставить в очередь ожидаемые ответы как MockResponse . В функции enqueueMockResponse мы читаем файл ImageResponse.json и ставим его в очередь как MockResponse.

Давайте напишем наш первый тест

Мы использовали runBlocking для сопрограммы. Как описано в комментарии, мы создали поддельный ответ, создали запрос к MockServer, получили ответ и проверили его. Запустим Тест.

Урааааааа!!!. Тест пройден.

Теперь давайте напишем непройденный тестовый пример.

Процесс создания такой же, как и раньше.

Урааааааа!!!. Тест провален. Может, нам стоит грустить.

Спасибо, что остался до последнего. Приветствуются любые предложения. Еще увидимся.

Want to Connect?
If you want to, you can connect with me on Twitter