Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Prueba de notificaciones con pruebas unitarias

Tengo un montón de tipos de notificación con condiciones que quiero probar automáticamente. Mi problema ahora es que sé que es imposible generar la notificación y comprobar si la interfaz de usuario generada en el centro de notificación parece esperada.

Debido a que traté de romper a llamar a mi BroadcastReceiver e interceptar ese punto donde despedir la notificación. Así que en ese momento puedo comprobar si la notificación contiene todas las configuraciones que espero. Tengo que esperar que se haya prestado como se esperaba 🙂

En mi build.gradle agregué este bloque:

 testOptions { unitTests.returnDefaultValues = true } 

Aquí empieza mi problema Creo la Intent y llamo al receptor:

 @RunWith(MockitoJUnitRunner.class) public class NotificationTest { @Mock Context mMockContext; @Test public void firstTest() { NotificationManager manager = new NotificationManager(); manager.onReceive(mMockContext, new Intent(NotificationManager.MY_ACTION)); } } 

Este código se bloquea con una NullPointerException porque tengo esta bonita línea en mi BroadcastReceiver :

 switch(intent.getAction()) { 

Puedo imaginar lo que sucede aquí. La API de burla no crea un Intent real y mis datos se han ido. ¿Cómo puedo probar ahora mi implementación de notificaciones? Supongo que el PendingIntent s que quiero probar a continuación no funcionará éter.

¿Qué puedo hacer ahora?

One Solution collect form web for “Prueba de notificaciones con pruebas unitarias”

Mi solución es por ahora burlarse de la intención de la siguiente manera:

 Intent action = spy(new Intent(NotificationManager.MY_ACTION)); doReturn(NotificationManager.MY_ACTION).when(action).getAction(); 

Sin embargo esto es sólo una solución. Más tarde me encuentro con el problema que la clase Notification.Builder() devuelve sólo nulos en el patrón del constructor, por lo que esto no lo arreglará en absoluto.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.