Tutorial jMock para principiantes con Test Project
¿Qué es jMock?
jMock es una biblioteca que ayuda a crear un desarrollo basado en pruebas de código Java con objetos simulados. Con la ayuda de jMock Podemos probar la clase de forma independiente, lo que depende de otra clase.
Supongamos que si una clase depende de otra clase, podemos crear una simulación de clase dependiente y establecer las propiedades iniciales para probar la clase dependiente.
Ejemplo de tutorial de jMock:
Nota: Estamos utilizando la plataforma Eclipse para este proyecto de prueba. Puedes descargar Eclipse desde aquí.
Cerciorarse Entorno de ejecución de Java SE ya está instalado para que el instalador de Eclipse inicie la instalación.
Cree un proyecto de prueba en Java denominado Proyecto de prueba. Incluya los siguientes archivos jar en su classpath:
- jmock-2.5.1.jar
- hamcrest-core-1.1.jar
- biblioteca-hamcrest-1.1.jar
- JUnit-4.5.jar
Cree una interfaz llamada ITestInterface. Coloque el siguiente código en esta interfaz:
prueba de paquete;
interfaz pública ITestInterface
{
prueba int pública();
}
Cree TestClass1. Coloque el siguiente código en esta clase.
prueba de paquete;
la clase pública TestClass1 implementa ITestInterface
{
prueba interna pública()
{
devolver 3;
}
}
Cree TestClass2. Coloque el siguiente código en esta clase.
prueba de paquete;
clase pública TestClass2
{
ITestInterface pruebaInterfaz;
Clase de prueba pública2()
{
this.testInterface=testInterface;
}
prueba int públicaMock()
{
int resultado=testInterface.test();
resultado de devolución;
}
}
Cree TestClass3. Coloque el siguiente código en esta clase.
prueba de paquete;
importar junit.framework.Assert;
importar org.jmock.Mockery;
importar org.junit.Test;
clase pública TestClass3
{
@Prueba
prueba de vacío públicoJmock()
{
org.jmock.Mockery TestInterfaceMock= nueva burla();
final ITestInterface testInterface=TestInterfaceMock.mock(ITestInterface.class);
TestInterfaceMock.checking (nueva org.jmock.Expectations()
{{
oneOf(testInterface).test();
voluntad(returnValue((3)));
}});
int j=testInterface.test();
System.out.println(j);
Assert.assertEquals(j, 3);
}
}
Como se ve en el ejemplo anterior, está claro que TestClass1 implementa la interfaz ITestInterface. Aquí, si observamos que TestClass2 depende de TestClass1, entonces, para que sea comprobable por unidad, no estamos haciendo algo nuevo de TestClass1 en TestClass2, estamos usando un objeto simulado.
En TestClass3 estamos creando el objeto simulado de ITestInterface. Estamos estableciendo la expectativa de que este objeto devuelva 3 cuando se llama durante la prueba unitaria de TestClass2. Por ejemplo, en TestClass3 cuando hacemos una llamada a testInterface.test() la llamada va a TestClass2. En TestClass2, cuando llamamos a testInterface.test(), el objeto simulado devuelve el valor. De esta manera, estamos probando TestClass2 de forma independiente.
Para probar el ejemplo anterior, haga clic derecho en TestClass3 y seleccione ejecutar como prueba Junit.
Mostrará la siguiente pantalla:
¡Caso de prueba ejecutado exitosamente!
5 respuestas
¿Puedo saber cómo testclass2 depende de testclass1?
¡Gracias por compartir la valiosa información sobre jmock! ¡Fue una lectura agradable!
De nada Tanuja 🙂 ¡Feliz de ayudar!
Buen post
Gracias 🙂