utilizar usar studio que como color cambiar agregar android functional-testing

android - usar - que es toast en whatsapp



Cómo probar la apariencia de un mensaje de Toast (7)

¿Alguien sabría cómo probar la aparición de un mensaje de Toast en una actividad?

No puedes, lo siento. Por lo cual, me refiero a que no hay forma de preguntarle a Android "hey, ¿se muestra un Toast? Y ¿qué aspecto tiene?".

¿Alguien sabría cómo probar la aparición de un mensaje de Toast en una actividad?

Estoy usando un código similar al que publicó OP en esta pregunta para probar el flujo de mi programa de una actividad a la siguiente. También me gustaría poder probar mensajes de brindis en actividades particulares.


Hm, en realidad hay una posibilidad de probar la apariencia de un brindis. Simplemente crea una subclase de Toast (p. Ej. MyOwnToast) y utiliza esta en tu programa en lugar de Toast. En esta subclase puede sobrescribir el método show () para notificarle que se está mostrando el Toast.

Además, puede almacenar el Toast dentro del método show () en una especie de singlete ToastDatabase desde donde puede acceder al Toast y su vista también después de que se haya mostrado y destruido (no lo he probado con Toasts, pero a menudo lo hago con el resultado de la intención de actividades para mantenerlos disponibles para más pruebas después de que hayan sido destruidos, por lo que no debería ser un problema implementar esto con Toasts).

Cuidado: quizás tenga que clonar el objeto Toast o su vista correspondiente para ToastDatabase porque probablemente será nulo después de que se haya destruido el Toast. ¡Espero que esto ayude!


Lo estoy usando como:

wait_for_text("Notification message to be verified", timeout: 30)

Esta es una forma alternativa que sirve parcialmente para el propósito.


Puede verificar que la tostada se mostró por mensaje

ShadowToast.showedToast("expected message")

Si está usando una tostada personalizada

ShadowToast.showedToast("expected message", R.id.yourToastId)


Verifico, los siguientes trabajos:

if(someToast == null) someToast = Toast.makeText(this, "sdfdsf", Toast.LENGTH_LONG); boolean isShown = someToast.getView().isShown();


puede elegir el marco de prueba de Robolectric . Para revisar el tostado, puede usarlo de la siguiente manera:

assertTrue(ShadowToast.showedCustomToast("message", R.id.message)); //R.id.message: textView ID


De hecho, ahora podemos probar los mensajes de pan tostado utilizando robolectric . El siguiente ejemplo es cómo nuestro equipo está haciendo esto por ahora:

@Test public void ccButtonDisplaysToast() throws NullPointerException { Button ccRedButton = (Button) findViewById(R.id.cc_red); cc_red.performClick(); --> this calls the actual onClickListener implementation which has the toast. ShadowLooper.idleMainLooper(YOUR_TIME_HERE); --> This may help you. assertThat(ShadowToast.getTextOfLatestToast().toString(), equalTo("TEST_YOUR_TEXT_HERE")); }

Espero que esto ayude