Pregunta

¿Alguien sabe cómo poner a prueba para la aparición de un mensaje de aviso emergente en una actividad?

Estoy usando un código similar a lo que el PO publicado en esta pregunta para probar mi programa se derivan de una actividad a la siguiente. También me gustaría ser capaz de probar para los mensajes de pan tostado en determinadas actividades.

¿Fue útil?

Solución

  

¿Alguien sabe cómo poner a prueba para la   aparición de un mensaje de aviso emergente en una   Actividad?

No se puede - lo siento. Por el cual, quiero decir que no hay forma de pedir Android "bueno, es una demostración de la tostada, y qué aspecto tiene?".

Otros consejos

Hm, en realidad hay es la posibilidad de probar la apariencia de un pan tostado. Basta con crear una subclase de pan tostado (por ejemplo MyOwnToast) y el uso de éste en su programa en lugar de pan tostado. En esta subclase se puede sobrescribir el método show () para que le notifique, que se está mostrando la tostada.

Además, puede guardar la tostada en el método show () en la clase de un producto único ToastDatabase desde donde se puede acceder a la tostada y es vista también después de que se ha mostrado y destruido (no he probado esto con tostadas, pero a menudo hacen que con el resultado de los intentos de actividades para mantenerlos disponibles para pruebas adicionales después de que hayan sido destruidos - por lo que debería haber ningún problema para implementar esto con tostadas).

Cuidado: tal vez usted tiene que clonar el objeto pan tostado o su vista para el ToastDatabase esta correspondiendo porque probablemente será nula después de que el pan tostado ha sido destruida. Esperamos que esto ayude!

En realidad, ahora podemos probar para los mensajes tostadas 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

verifico, las siguientes obras:

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

se puede elegir la prueba Robolectric framework.For comprobación de pan tostado, que se puede utilizar de la siguiente manera:

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

Se puede comprobar que la tostada se demostró por el mensaje

ShadowToast.showedToast("expected message")

Si está utilizando un brindis a medida

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

lo estoy usando como:

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top