Red de conocimiento de abogados - Derecho de sociedades - La diferencia entre mockito y junit

La diferencia entre mockito y junit

Mockito es un marco simulado de código abierto; Junit es un marco de pruebas unitarias en lenguaje Java.

caso de prueba de junit:

clase pública MainTstObjectJMockTest {

contexto de burla privada = new JUnit4Mockery();

MayMockObject privado mayMockObject <; /p>

MainTstObject privado mainTstObject;

@Before

setUp público void() {

this.mayMockObject = this.context.mock( MayMockObject .class); // Simula la interfaz externa

this.mainTstObject = new MainTstObject();

this.mainTstObject.setMayMockObject(this.mayMockObject);

}

@Test

public void process() {

final String str1 = "Mockito devuelve una cadena.";

final String str2 = "Mockito devuelve una cadena.

";

this.context.checking(new Expectations() {

{

oneOf(mayMockObject).getString(str2);

will(returnValue("")); // Valor de retorno simulado

// permitiendo(mayMockObject).getString(with(any(String.class)));

// will(returnValue(""));

}

});

String ret = this.mainTstObject.create(str1, str2);

Assert.assertEquals(ret, str1);

}

@After

public void tearDown() {

}

}

Caso de prueba de Mockito:

clase pública MainTstObjectMockitoTest {

//Especificar el objeto simulado

p>

@Mock

MayMockObject privado mayMockObject;

MainTstObject privado mainTstObject;

@Before

configuración de vacío público( ) {

MockitoAnnotations.initMocks(this); // Declarar la clase de caso de prueba

this.mainTstObject = new MainTstObject();

this.mainTstObject. setMayMockObject( this.mayMockObject);

}

@Test

proceso público void() {

Cadena str1 = "Mockito devuelve una cuerda. ";

String str2 = "Mockito devuelve una cadena. ";

Mockito.when(this.mayMockObject.getString(str2)).thenReturn(""); // Valor de retorno simulado

String ret = this.mainTstObject.create( str1, str2);

Assert.assertEquals(ret, str1);

}

@After

public void tearDown() {

}

}

Algunas diferencias en el uso entre junit y Mockito:

1 Para los objetos que se van a burlar, JMock To. para mostrarlo, this.mayMockObject = this.context.mock(MayMockObject.class);;

Y Mockito simplemente agrega la anotación @Mock y luego declara la clase de caso de prueba MockitoAnnotations.initMocks(this);.

2. Para la simulación de métodos, junit es más complicado this.context.checking(new Expectations() {

{

oneOf(mayMockObject). getString( str2);

will(returnValue(""));

}

});

Y Mockito solo necesita ser simple La única línea de código es Mockito.when(this.mayMockObject.getString(str2)).thenReturn("");.

Como puedes ver en lo anterior, Mockito tiene menos líneas de código y es más conciso y fácil de recordar.

Otra cosa a tener en cuenta es que junit solo puede simular interfaces, es decir, en el ejemplo anterior, MayMockObject solo puede ser interfaces, no clases de entidad, Mockito no tiene esta restricción;