Как протестировать на появление сообщения Тоста

Проблема была в моем местном IIS. У него было приложение, работающее на порту 8200.

34
задан Community 23 May 2017 в 11:33
поделиться

3 ответа

Кто-нибудь знает, как проверить появление сообщения Toast в действии ?

Вы можете извини. Под этим я подразумеваю, что у Android нет способа спросить: «Привет, есть тост? И как он выглядит?».

22
ответ дан 27 November 2019 в 16:53
поделиться

Для тех, которые теперь используют Тестовый API AndroidX в 2019 и использование пользовательского макета для тостов, попробуйте этот (Kotlin):

@RunWith(AndroidJUnit4:class)
class ActivityUnitTest {
    private lateinit var scenario: ActivityScenario<MainActivity>

    @Before fun setUp() {
        scenario = ActivityScenario.launch(MainActivity::class.java)
    }

    @Test fun shouldDisplayToastErrorMessageIfSearchFieldIsEmpty() {
        scenario.onActivity { activity ->
            activity.id_of_button.performClick()
            assertThat(
                ShadowToast.getLatestToast().view.id_of_textview.text.toString(),
                equalTo("Text to be tested")
            )
        }
    }
}
0
ответ дан 27 November 2019 в 16:53
поделиться

Хм, на самом деле есть возможность проверить внешний вид тоста. Просто создайте подкласс Toast (например, MyOwnToast) и используйте его в своей программе вместо Toast. В этом подклассе вы можете перезаписать метод show (), чтобы уведомлять вас о том, что отображается тост.

Кроме того, вы можете сохранить Toast в методе show () в виде синглтона ToastDatabase, откуда вы можете получить доступ к Toast и его просмотру также после того, как он был показан и уничтожен (не тестировал это с Toasts, но я часто делают это с намерениями результата действий, чтобы сохранить их доступными для дальнейших тестов после того, как они были уничтожены - поэтому не должно быть проблем реализовать это с помощью Toasts).

Осторожно: возможно, вам придется клонировать объект Toast или его соответствующее представление для ToastDatabase, потому что, вероятно, он будет нулевым после того, как Toast будет уничтожен. Надеюсь это поможет!

12
ответ дан 27 November 2019 в 16:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: