Тест 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 секунд?