Как начать проверку при длительной работе (загрузка данных из сети) - PullRequest
0 голосов
/ 05 мая 2019

Adnroid studio 3.3.

В моем приложении я использую Retrofit для выполнения http-запроса. Также я использую MockWebServer для возврата ответа на заглушку.

При активности, когда я нажимаю кнопку, я запускаю async http-запрос (от Retrofit) и жду метода обратного вызова для возврата ответа. Вот тест Эспрессо:

@RunWith(AndroidJUnit4::class)
class AddTraderActivityTest {
@get:Rule
    var addTraderIntentTestRule: IntentsTestRule<AddTraderActivity> = IntentsTestRule(AddTraderActivity::class.java)

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

  @Test
fun buttonStart_click_longResponse() {
    // stub response
    mockServer.enqueue(MockResponse()
            .setResponseCode(200)
            .setBody(FileUtil.getStringFromFile(context, "add_trader_success_200.json"))
            .setBodyDelay(5000, TimeUnit.MILLISECONDS))

    onView(withId(R.id.baseTextInputEditText))
            .perform(typeText(BASE_TEST))
    onView(withId(R.id.quoteTextInputEditText))
            .perform(typeText(QUOTE_TEST))
    onView(withId(R.id.startButton))
            .perform(click())
    onView(withText(R.id.containerProgressBarLayout))
            .check(matches(isDisplayed()))
}

Но проблема в том, что при выполнении perform(click() метод check не вызывается до тех пор, пока не получит ответ заглушки (через 5 секунд).

Но мне нужно вызвать метод check немедленно после perform(click() метода. Потому что мне нужно check это containerProgressBarLayout это isDisplayed() пока не вернуть ответ на заглушку. Мне нужно проверить мой взгляд В ТЕЧЕНИЕ загрузка данных

Как я могу это сделать?

1 Ответ

0 голосов
/ 06 мая 2019

Можно использовать Ресурсы холостого хода эспрессо .

Ресурс холостого хода представляет собой асинхронную операцию, результаты которой влияют на последующие операции в тесте пользовательского интерфейса.Регистрируя ресурсы холостого хода в Espresso, вы можете более надежно проверять эти асинхронные операции при тестировании вашего приложения.

Также, есть библиотека для Okhttp, вы можете проверить ее здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...