Какой тип теста мне нужен, чтобы проверить проблему сети на нескольких указанных c устройствах - PullRequest
0 голосов
/ 11 апреля 2020

Как проверить, чтобы убедиться, что тайм-аут запроса соблюдается

Мне нужно написать тест, который показывает, что когда запрос okhttp занимает больше времени, чем указанный период ожидания, он отменяется. Я использую junit4 и mockito. Мне сложно написать модульный тест для этого, потому что это зависит от устройства inte rnet connection

1 Ответ

0 голосов
/ 12 апреля 2020

Самый простой способ - запустить тест на устройстве или эмуляторе

См. Пример android тесты здесь https://github.com/square/okhttp/tree/master/android-test

$ ANDROID_SDK_ROOT=/Users/myusername/Library/Android/sdk ./gradlew :android-test:connectedCheck
...
> Task :android-test:connectedDebugAndroidTest
...
11:55:40 V/InstrumentationResultParser: Time: 13.271
11:55:40 V/InstrumentationResultParser:
11:55:40 V/InstrumentationResultParser: OK (12 tests)
...
11:55:40 I/XmlResultReporter: XML test result file generated at /Users/myusername/workspace/okhttp/android-test/build/outputs/androidTest-results/connected/TEST-pixel3a-Q(AVD) - 10-android-test-.xml. Total tests 13, passed 11, assumption_failure 1, ignored 1,
...
BUILD SUCCESSFUL in 1m 30s
63 actionable tasks: 61 executed, 2 up-to-date

Вы можете начать изменив https://github.com/square/okhttp/blob/master/android-test/src/androidTest/java/okhttp/android/test/compare/OkHttpClientTest.kt

@RunWith(AndroidJUnit4::class)
class OkHttpClientTest {
  private var client = OkHttpClient()

  @Test fun get() {
    val request = Request.Builder()
        .url("https://google.com/robots.txt")
        .build()
    client.newCall(request).execute().use { response ->
      assertThat(response.code).isEqualTo(200)
      assertThat(response.protocol).isEqualTo(Protocol.HTTP_2)
    }
  }
}
...