java.lang.IllegalStateException: 2 matchers expected, 1 recorded.En particular, esto ocurre cuando un metodo de un objeto es invocado sin configurar previamente un matcher para cada argumento.
En general, para un metodo que posee n argumentos, EasyMock espera n matchers, en caso que, para alguno de esos argumentos, un matcher sea utilizado.
Observe el siguiente codigo:
public class Prueba {Al crear un mock para la clase prueba, se configurar la invocacion del unico metodo que posee, de la siguiente manera:
public void metodo(String arg1, int arg2) {}
}
Prueba p = EasyMock.createControl().createMock(Prueba.class);Al ejecutar el codigo anterior, EasyMock arrojara una IllegalStateException, como la descripta al comienzo. Esto se debe a que isA es un matcher y no todos los argumentos en la configuracion del metodo utilizan matchers.
p.metodo(isA(String.class), 0);
Modificando la configuracion para la invocacion del metodo de la siguiente manera:
p.metodo(isA(String.class), anyInt());el codigo ejecutara sin inconvenientes, ya que todos los argumentos del metodo estan configurados empleando matchers.
Vinculos:
No hay comentarios.:
Publicar un comentario