Тестирование Android-модулей с помощью дооснастки / RxJava / Roboletric и Mockito

Я пытаюсь написать модульный тест с Robolectric и Mockito. Я переоснащен, и я хотел бы протестировать с макетным ответом. Я пробовал что-то вроде этой ссылки здесь

Но я получил java.lang.NullPointerException . Вот пример моего кода:

  private MainActivity mainActivity; @Mock private FoursquareCalls mockApi; @Captor private ArgumentCaptor<Action1<FoursquareListResponse>> cb; @Before public void setup() { MockitoAnnotations.initMocks(this); ActivityController<MainActivity> controller = Robolectric.buildActivity(MainActivity.class); mainActivity = controller.get(); controller.create(); } @Test public void shouldFillAdapterWithReposFromApi() throws Exception { mockApi.getListFoodTrucks(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString()); Mockito.verify(mockApi).getListFoodTrucks(Mockito.anyString(), Mockito.anyString(), Mockito .anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString()) .subscribe(cb.capture()); SearchFragment searchFragment = (SearchFragment) mainActivity.getFragmentManager().findFragmentById(R.id .fragment_container); FoursquareListResponse testRespo = new FoursquareListResponse(); testRespo.foodtruckReponse = new FoodTruckResponseModel(); testRespo.foodtruckReponse.listFoodtruck = new ArrayList<>(); testRespo.foodtruckReponse.listFoodtruck.add(new FoodTruckResponseModel()); testRespo.foodtruckReponse.listFoodtruck.add(new FoodTruckResponseModel()); cb.getValue().call(testRespo); assertEquals(searchFragment.getAdapter(), 2); } 

Исключение Null указателя появляется, когда я звоню .subscribe(cb.capture()) . Я думал, что смогу захватить вызов внутри subsribe() и выполнить мой тест с помощью фиктивного объекта. Я думаю, что я что-то не понял, но не уверен, какая часть: /.

Intereting Posts