uso - Java verifica el método nulo llama n veces con Mockito
tutorial mockito java (1)
El método necesario es Mockito#verify :
public static <T> T verify(T mock,
VerificationMode mode)
mock
es su objeto y mode
burlado es el mode
VerificationMode
que describe cómo se debe verificar el simulacro. Los modos posibles son :
verify(mock, times(5)).someMethod("was called five times");
verify(mock, never()).someMethod("was never called");
verify(mock, atLeastOnce()).someMethod("was called at least once");
verify(mock, atLeast(2)).someMethod("was called at least twice");
verify(mock, atMost(3)).someMethod("was called at most 3 times");
verify(mock, atLeast(0)).someMethod("was called any number of times"); // useful with captors
verify(mock, only()).someMethod("no other method has been called on the mock");
Necesitará estas importaciones estáticas de la clase Mockito
para usar el método de verify
y estos modos de verificación:
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.atMost;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.only;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
(La clase VerificationModeFactory
también proporciona los modos de verificación mencionados. Por lo tanto, también podría usar esta clase para las importaciones estáticas).
Entonces, en su caso, la sintaxis correcta será:
Mockito.verify(mock, times(4)).send()
Esto verifica que el método de send
fue llamado 4 veces en el objeto burlado. Fallará si se llamó menos o más de 4 veces.
Si solo quiere verificar, si el método ha sido llamado una vez, entonces no necesita pasar un VerificationMode
. Un simple
verify(mock).someMethod("was called once");
seria suficiente. Utiliza internamente verify(mock, times(1)).someMethod("was called once");
.
Estoy intentando verificar que se está llamando a un método (nulo) dentro de un DAO: estoy usando un punto de confirmación que envía una lista de resultados hasta ese punto, restablece la lista y continúa. Supongamos que tengo 4 cosas en la lista y tengo un punto de compromiso de 1, esperaría que el método "enviar" se llame 4 veces. Puedo verificar que el método se llame una vez escribiendo
Mockito.verify(mock).send()
pasa ... pero quiero verificar la cantidad de veces que se llamó. Yo pensaría que
Mockito.verify(mock.send(), times(4))
sería suficiente, pero dice que los parámetros no son correctos para verificar.
Por cierto, si cambio Mockito.verify(mock).send()
a Mockito.verify(mock.send())
o Mockito.verify((mock).send())
me sale el mismo error. Pensamientos sobre esto?