2011-05-08 15 views
8

Abbiamo un test che estende JerseyTest e abbiamo bisogno di un servizio di simulazione in esso iniettato. Come possiamo farlo?Maglia di prova unitaria con Mazzi

Grazie

+0

uno nuovo Jersey su di me. Pensavo che tutti usassero JUnit o TestNG. – duffymo

+0

Estensione di JerseyTest consente di aggiungere annotazioni JUnit @Test regolari, ma non so come iniettare un servizio Mock nella configurazione Spring utilizzata da jersey-spring. qualche idea? – alecswan

+0

Hai davvero bisogno di iniettare mockito quando ha solo metodi statici? – Spoike

risposta

2

Edit: questa soluzione funziona solo con Jersey 1.x, ed è quindi del tutto superata.

Si riferisce alla libreria http://geek.riffpie.com/unit-testing-restful-jersey-services-glued-together-with-spring/.

Se si utilizza Spring, è possibile estendere AbstractSpringAwareJerseyTest anziché JerseyTest e iniettare tutto ciò di cui si ha bisogno.

Come richiesto, un piccolo frammento di codice:

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

Credo che punti a: http://geek.riffpie.com/unit-testing-restful-jersey-services-glued-together-with-spring/ Non ho funzionato, però. –

+0

Esattamente, questo tutorial mi ha portato a questa soluzione e funziona perfettamente. Grazie per la precisione. –

+0

Ti piacerebbe elaborare come i fagioli '@ Autowired' vengono iniettati nella classe di test (hai annotato alcuni' @ RunWith', ad esempio)? Potresti passare un semplice esempio della tua lezione di test qui? –