mock example dzone java unit-testing mocking mockito stubbing

java - example - Mockito: cómo encontrar fácilmente un método sin burlar todos los parámetros



mockito verify spy (3)

Tengo un método que me gustaría guardar pero tiene muchos parámetros. ¿Cómo puedo evitar burlarme de todos los parámetros, pero aun así resisto el método?

Ex:

//Method to stub public void myMethod(Bar bar, Foo foo, FooBar fooBar, BarFoo barFoo, .....endless list of parameters..);


Cree una clase contenedora que invoque el método real y complete todos los argumentos, excepto los que proporcione (también conocido como "delegación").

Y en la próxima oportunidad, presente un error en el proyecto solicitando mover los parámetros a un objeto de configuración.


No entiendo qué problema tienes con Mockito. Suponiendo que crea un simulacro de la interfaz que contiene su método myMethod() , puede verificar solo los parámetros del método que le interese. Por ejemplo (suponiendo que la interfaz se llame MyInterface y use JUnit 4):

@Test public void test() { MyInterface myInterface = mock(MyInterface.class); FooBar expectedFooBar = new FooBar(); // other testing stuff verify(myInterface).myMethod(any(), any(), eq(expectedFooBar), any(), ...); }

Deberá realizar una importación estática en los métodos de Mockito para que esto funcione. Al evaluador any() no le importa qué valor se haya pasado al verificar.

No puede evitar pasar algo por cada argumento en su método (incluso si solo es NULO).


usa mockito.any

si myobj mymethod acepta cadena, cadena, barra, por ejemplo

para colgar una llamada

Mockito.when(myojb.myMethod(Mockito.anyString(),Mockito.anyString(),Mockito.any(Bar.class))) .thenReturn(amockedobject);

para verificar que SteveD ya dio la respuesta

Mockito.verify(myojb).myMethod( Mockito.anyString(),Mockito.anyString(),Mockito.any(Bar.class)));