У меня есть этот TestNG код метода испытаний:Получение InvalidUseOfMatchersException когда гася метод
@InjectMocks
private FilmeService filmeService = new FilmeServiceImpl();
@Mock
private FilmeDAO filmeDao;
@BeforeMethod(alwaysRun=true)
public void injectDao() {
MockitoAnnotations.initMocks(this);
}
//... another tests here
@Test
public void getRandomEnqueteFilmes() {
@SuppressWarnings("unchecked")
List<Filme> listaFilmes = mock(List.class);
when(listaFilmes.get(anyInt())).thenReturn(any(Filme.class));
when(filmeDao.listAll()).thenReturn(listaFilmes);
List<Filme> filmes = filmeService.getRandomEnqueteFilmes();
assertNotNull(filmes, "Lista de filmes retornou vazia");
assertEquals(filmes.size(), 2, "Lista não retornou com 2 filmes");
}
И я получаю «org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Неправильное использование аргумента matchers 0 matchers ожидается, 1 записано:»в вызове listAll() метод в этом коде:
@Override
public List<Filme> getRandomEnqueteFilmes() {
int indice1, indice2 = 0;
List<Filme> filmesExibir = new ArrayList<Filme>();
List<Filme> filmes = dao.listAll();
Random randomGenerator = new Random();
indice1 = randomGenerator.nextInt(5);
do {
indice2 = randomGenerator.nextInt(5);
} while(indice1 == indice2);
filmesExibir.add(filmes.get(indice1));
filmesExibir.add(filmes.get(indice2));
return filmesExibir;
}
Я Prety уверен, что я что-то здесь отсутствует, но я не знаю, что это такое! Кто-то помогает?
Является ли метод dao.listAll() 'final? Какой тип 'dao'? У вас может быть такая же проблема, как в [этом вопросе] (http://stackoverflow.com/questions/11458963/mockito-0-matchers-expected-1-recorded-invaliduseofmatchersexception). – andersschuller
@andersschuller Нет, dao - это издевательский объект filmeDao, я улучшил свой вопрос, чтобы сделать его более заметным. Я прочитал вопрос, который вы упомянули, но ничего не уточняет ответ на мою проблему. – Iogui