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;