Soy nuevo en el uso de Mockito y estoy tratando de comprender una manera de hacer una prueba unitaria de una clase que dependa de las dependencias inyectadas. Lo que quiero hacer es crear objetos simulados de las dependencias y hacer que la clase que estoy probando los use en lugar de las dependencias inyectadas que inyectaría Spring. He estado leyendo tutoriales pero estoy un poco confundido sobre cómo hacer esto.Mockito, ¿Está probando un objeto que se basa en dependencias inyectadas (Spring)?
Tengo uno la clase quiero probar de esta manera:
package org.rd.server.beans;
import org.springframework.beans.factory.annotation.Autowired;
public class TestBean1 {
@Autowired
private SubBean1 subBean1;
private String helloString;
public String testReturn() {
subBean1.setSomething("its working");
String something = subBean1.getSomething();
helloString = "Hello...... " + something;
return helloString;
}
Entonces tengo la clase que quiero usar como un objeto de burla (en lugar de la clase regular SubBean1
, como a continuación:
package org.rd.server.beans.mock;
public class SubBean1Mock {
private String something;
public String getSomething() {
return something;
}
public void setSomething(String something) {
this.something = something;
}
}
}
sólo quiero intenta ejecutar una prueba simple como esto:
package test.rd.beans;
import org.rd.server.beans.TestBean1;
import junit.framework.*;
public class TestBean1Test extends TestCase
{
private TestBean1 testBean1;
public TestBean1Test(String name)
{
super(name);
}
public void setUp()
{
testBean1 = new TestBean1();
// Somehow inject the mock dependency SubBean1Mock ???
}
public void test1() {
assertEquals(testBean1.testReturn(),"working");
}
}
Me imagino que debe haber una forma bastante simple de hacerlo, pero parece que no puedo entender los tutoriales, ya que aún no tengo el contexto para entender todo lo que hacen/explican. Si alguien pudiera arrojar algo de luz sobre esto, lo apreciaría.
Gracias, tu respuesta me ayuda mucho a entenderlo en términos sencillos en inglés :) Creo que estoy en el camino correcto ahora – Rick
Soy bastante nuevo en la burla, pero hace realmente complejas las pruebas complejas una vez que entiendes cómo funciona. Realmente me gustó Mockito y me pareció muy amable trabajar con él. ¡Buena suerte con tus pruebas! – digitaljoel
gracias, excelente artículo, tuve algunos problemas para que funcionase, pero ahora lo entiendo mejor, estoy seguro de que es algo que hice mal al ser nuevo, pero pude hacer que Ed trabaje. Las pruebas simuladas definitivamente son algo que debería estar haciendo más de – Rick