usar - radiobutton java metodos
¿Puede Mockito tachar un método sin tener en cuenta el argumento? (3)
Use así:
when(
fooDao.getBar(
Matchers.<Bazoo>any()
)
).thenReturn(myFoo);
Antes de que necesites importar Mockito.Matchers
Estoy tratando de probar un código heredado, usando Mockito.
Quiero FooDao
un FooDao
que se utiliza en la producción de la siguiente manera:
foo = fooDao.getBar(new Bazoo());
Puedo escribir:
when(fooDao.getBar(new Bazoo())).thenReturn(myFoo);
Pero el problema obvio es que nunca se llama a getBar()
con el mismo objeto Bazoo
que Bazoo
el método. (¡Maldita sea ese new
operador!)
Me encantaría si pudiera aplastar el método de manera que devuelva myFoo
independientemente del argumento. De no ser así, escucharé otras sugerencias de solución alternativa, pero realmente me gustaría evitar cambiar el código de producción hasta que haya una cobertura de prueba razonable.
http://site.mockito.org/mockito/docs/1.10.19/org/mockito/Matchers.html
anyObject debe satisfacer sus necesidades.
Además, siempre puedes considerar implementar hashCode y es igual para la clase Bazoo. Esto haría que su ejemplo de código funcione de la manera que desee.
when(
fooDao.getBar(
any(Bazoo.class)
)
).thenReturn(myFoo);
o (para evitar null
s):
when(
fooDao.getBar(
(Bazoo)notNull()
)
).thenReturn(myFoo);
No te olvides de importar matchers (muchos otros están disponibles):
Para Mockito 2.1.0 y más reciente:
import static org.mockito.ArgumentMatchers.*;
Para versiones anteriores:
import static org.mockito.Matchers.*;