Android RecyclerView Adapter está dando nulo en la prueba de unidad

Estoy tratando de probar RecyclerView con AndroidJunit4, es mi código de prueba:

package com.kaushik.myredmart.ui; // all includes @RunWith(AndroidJUnit4.class) public class ProductListActivityTest { @Rule public ActivityTestRule<ProductListActivity> rule = new ActivityTestRule<>(ProductListActivity.class); @Test public void ensureListViewIsPresent() throws Exception { ProductListActivity activity = rule.getActivity(); View viewByIdw = activity.findViewById(R.id.productListView); assertThat(viewByIdw,notNullValue()); assertThat(viewByIdw, instanceOf(RecyclerView.class)); RecyclerView productRecyclerView = (RecyclerView) viewByIdw; RecyclerView.Adapter adapter = productRecyclerView.getAdapter(); assertThat(adapter, instanceOf(ProductAdapter.class)); } } 

Estoy enfrentando un problema para comprobar el adaptador. Aunque productRecyclerView está pasando no una prueba nula y una instancia de RecyclerView, está siguiendo el error en la última línea:

 java.lang.AssertionError: Expected: an instance of com.kaushik.myredmart.adapter.ProductAdapter but: null at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) at org.junit.Assert.assertThat(Assert.java:956) at org.junit.Assert.assertThat(Assert.java:923) at com.kaushik.myredmart.ui.ProductListActivityTest.ensureListViewIsPresent(ProductListActivityTest.java:45) 

¿Cuál es el problema en el código?

A juzgar por esta línea:

Se espera: una instancia de com.kaushik.myredmart.adapter.ProductAdapter pero: null

Se puede concluir, que esto:

 RecyclerView.Adapter adapter = productRecyclerView.getAdapter(); 

Devuelve null , lo que puede ocurrir cuando no se ha realizado productRecyclerView.setAdapter(adapter) .

Asegúrese de que está configurando correctamente el adaptador en las devoluciones de llamada del ciclo de vida de la actividad (es decir, en onCreate() ). Me parece que está creando y configurando el adaptador después de alguna acción / devolución de llamada.

Como se ha mencionado por @azizbekian, debe establecer el adaptador en onCreate () de la actividad.

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