Я создал юнит-тест асинхронной задачи. Он получает JSON от API, и я хочу просмотреть ArrayList, который я получил.
Вот мой код:
public class MovieViewModelTest {
@Rule
public InstantTaskExecutorRule instantTaskExecutorRule = new InstantTaskExecutorRule();
private MovieViewModel viewModel;
private MovieRepository movieRepository = mock(MovieRepository.class);
private Observer<ArrayList<Movie>> observer;
@Before
public void setUp(){
viewModel = new MovieViewModel(movieRepository);
observer = mock(Observer.class);
}
@Test
public void getMovie() {
ArrayList<Movie> dummyMovie = viewModel.getArrayMovie();
MutableLiveData<ArrayList<Movie>> movies = new MutableLiveData<>();
movies.setValue(dummyMovie);
when(movieRepository.getListMovie()).thenReturn(dummyMovie);
observer = movies1 -> assertNotNull(movies1);
viewModel.getMovie().observeForever(observer);
verify(observer).onChanged(dummyMovie);
}
Но когда я пытаюсь запустить его, он показывает ошибку:
org.mockito.exceptions.misusing.NotAMockException:
Argument passed to verify() is of type MovieViewModelTest$$Lambda$1/1976870338 and is not a mock!
Что не так с моим кодом?