Pregunta

tengo un método que me gustaría trozo pero tiene una gran cantidad de parámetros. ¿Cómo puedo evitar burlarse de todos los parámetros, pero aún stub del método.

Ejemplo:

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

Solución

No lo bastante sigue lo problema que tiene el uso de Mockito. Suponiendo que se crea una maqueta de la interfaz que contiene el método myMethod(), a continuación, puede comprobar sólo los parámetros para el método que usted está interesado en, por ejemplo (suponiendo que la interfaz se llama MyInterface y utilizando 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(), ...);
}

Se tendrá que hacer una importación estática en los métodos Mockito para que esto funcione. El matcher any() no le importa qué valor se ha pasado la hora de verificar.

No se puede evitar que pase algo para cada argumento en el método (incluso si es sólo NULL).

Otros consejos

uso mockito.any

Si myObj MyMethod acepta la secuencia, secuencia, bar, por ejemplo,

para stub una llamada

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

para verificar SteveD dio la respuesta ya

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

Crea una clase de contenedor que llama al método y rellenos real en todos los argumentos, pero los que la oferta (a.k.a "delegación").

Y en la siguiente oportunidad, un archivo de error contra el proyecto pidiendo para mover los parámetros a un objeto de configuración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top