Есть такой класс:
public class EvolutionViewModel extends ViewModel implements EvolutionListener {
private MutableLiveData<List<EvolutionListItem>> evolutionLiveData = new MutableLiveData<>();
private List<EvolutionListItem> evolutionListItems = new ArrayList<>();
public LiveData<List<EvolutionListItem>> getEvolutionData() {
return evolutionLiveData;
}
@Override
public void onSuccess(Evolution evolution) {
evolutionListItems.clear();
addEvolutionToList(evolution, 0);
evolutionLiveData.postValue(evolutionListItems);
}
private void addEvolutionToList(Evolution evolution, int level) {
evolutionListItems.add(new EvolutionListItem(evolution.getName(), level));
if ((evolution == null) || (evolution.getEvolution() == null) || (evolution.getEvolution().size() == 0)) {
return;
}
level++;
for (Evolution childEvolution : evolution.getEvolution()) {
addEvolutionToList(childEvolution, level);
}
}
@Override
public void onFailure() {
evolutionLiveData.postValue(new ArrayList<EvolutionListItem>());
}
}
Вот мой тест:
@RunWith(AndroidJUnit4.class)
public class EvolutionViewModelTest {
@Rule
public TestRule rule = new InstantTaskExecutorRule();
private EvolutionViewModel evolutionViewModel;
@Before
public void setUp() throws Exception {
evolutionViewModel = new EvolutionViewModel();
}
@Test
public void onEvolutionTest() {
Evolution evolutionRoot = new Evolution();
evolutionRoot.setName("nameRoot");
List<Evolution> evolutions = new ArrayList<>();
Evolution evolutionChild = new Evolution();
evolutionChild.setName("evolutionChild");
evolutions.add(evolutionChild);
evolutionRoot.setEvolution(evolutions);
evolutionViewModel = new EvolutionViewModel();
evolutionViewModel.onSuccess(evolutionRoot);
assertEquals(2, evolutionViewModel.getEvolutionData().getValue().size());
}
}
Получаю NullPointerException
на assertEquals()
. Подскажите, что не так?
Причем когда прошла с debug, то тест прошел, а без него нет. Похоже, что просто надо как-то притормозить, пока метод сработает.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
IntelliJ IDEA предлагает заменить лямбда-выражения ссылками на методыВ чём разница разница между ними?
Перепробовал разные методыОшибок подключения к базе вроде нет
Возможно ли соединить два(или больше) видео так, что бы они имели общий TimeBar(длина была в длину обеих видио, и пользователь мог менять позицию)В...