2011-05-08 16 views
8

tenemos una prueba que se extiende JerseyTest y necesitamos un servicio de simulacro se inyecta en ella. ¿Cómo podemos hacer esto?Unidad de pruebas de Jersey con Mocks

Gracias

+0

uno nuevo de Jersey en mí. Pensé que todos usaban JUnit o TestNG. – duffymo

+0

Prolongar JerseyTest le permite agregar anotaciones JUnit @Test regulares, pero no sé cómo inyectar un servicio falso en la configuración Spring utilizada por jersey-spring. ¿Alguna idea? – alecswan

+0

¿De verdad necesitas inyectar mockito cuando solo tiene métodos estáticos? – Spoike

Respuesta

2

Editar: esta solución sólo funciona con Jersey 1.x, y por lo tanto es bastante anticuado.

Se refiere a http://geek.riffpie.com/unit-testing-restful-jersey-services-glued-together-with-spring/ biblioteca.

Si usa Spring, puede extender AbstractSpringAwareJerseyTest en lugar de JerseyTest e inyectar lo que necesite.

a lo solicitado, un pequeño fragmento de código:

public class MyClassTest extends AbstractSpringAwareJerseyTest{ 

    @Autowired 
    private LdapSetupAndTearDown ldapSetupAndTearDown; 

    @Before 
    public void setUp2() throws Exception { 
    ldapSetupAndTearDown.setUp(); 
    } 

    @After 
    public void tearDown2() throws Exception { 
    ldapSetupAndTearDown.tearDown(); 
    } 

    public MyClassTest() throws Exception { 
    super(new WebAppDescriptor.Builder() 
    .contextPath("JSONUserServiceTest") 
    .contextParam("contextConfigLocation", 
     "classpath:/ctx-config-test.xml,classpath:/ctx-core.xml, classpath:/ctx-jmx-test.xml, classpath:ctx-jersey.xml, classpath:ctx-ldap.xml, classpath:ctx-ldap-test.xml") 
    .servletClass(SpringServlet.class).contextListenerClass(ContextLoaderListener.class).build()); 
    } 
+1

Supongo que apunta a: http://geek.riffpie.com/unit-testing-restful-jersey-services-glued-together-with-spring/ Aunque no funcionó. –

+0

Exactamente, este tutorial me llevó a esta solución, y funciona bien. Gracias por la precisión. –

+0

¿Le importaría explicar cómo se inyectan los beans '@ Autowired' en la clase de prueba (por ejemplo, ¿anotaron algunos' @ RunWith')? ¿Podría pasar un ejemplo simple de su clase de prueba aquí? –

Cuestiones relacionadas