when uso usar unitarios tutorial test examples datos como java unit-testing junit mockito verify

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?