MockWebServer не ждет N секунд, чтобы вернуть ответ заглушки - PullRequest
0 голосов
/ 31 мая 2019

Тест Android эспрессо:

первая версия

import okhttp3.mockwebserver.MockResponse
import okhttp3.mockwebserver.MockWebServer

private lateinit var mockServer: MockWebServer

   @Rule
   @JvmField
   var tradersIntentTestRule = IntentsTestRule(TradersActivity::class.java, false, false)

@Before
    fun setup() {
        mockServer = MockWebServer()
        mockServer.start(8081)
        Debug.d(TAG, "setup_START")

}


@Test
    fun testMockServer() {
        Debug.d(TAG, "testMockServer_start")
        mockServer.enqueue(MockResponse()
                .setResponseCode(200)
                .setBodyDelay(10000, TimeUnit.MILLISECONDS)
                .setBody(FileUtil.getStringFromFile(context, randomTraderStubName.stubName)));
        Debug.d(TAG, "testMockServer_finish")
    }


    @After
    @Throws
    fun tearDown() {
        mockServer.shutdown()
}

Вот результат logcat:

05-31 18:10:52.327 D/com.myproject.activity.TradersActivityTest(10312): testMockServer_start
05-31 18:10:52.371 D/com.myproject.activity.TradersActivityTest(10312): testMockServer_finish

как вы видите текст "testMockServer_finish", покажите немедленно . Не ждать 10 секунд.

вторая версия:

 @Test
    fun testMockServer() {
        Debug.d(TAG, "testMockServer_start")
        tradersIntentTestRule.finishActivity()
        mockServer.enqueue(MockResponse()
                .setResponseCode(200)
                .setBodyDelay(10000, TimeUnit.MILLISECONDS)
                .setBody(FileUtil.getStringFromFile(context, randomTraderStubName.stubName)));
        tradersIntentTestRule.launchActivity(Intent())
        Debug.d(TAG, "testMockServer_finish")
}

результат logcat:

05-31 18:14:54.103 D/com.myproject.android.activity.TradersActivityTest(11689): testMockServer_start
05-31 18:15:04.322 D/com.myproject.android.activity.TradersActivityTest(11689): testMockServer_finish

и теперь, как вы видите, текст "testMockServer_finish" показывает через 10 секунд

Почему на первой версии не ждать 10 секунд?

...