Voglio testare il mio servizio web / metodo web non usando SOAP ma con Junit o altri framework. La prima soluzione che ho fondato è quella di creare uno stub del mio progetto e utilizzare un client per chiamare questo metodo; ma quello che voglio fare è non usare un client, ma chiamare direttamente il mio webmethod all'interno del mio progetto; Sto usando Maven e il progetto è su Jenkins, quindi con Jenkins voglio testare il mio metodo di prova. Ho provato questo per chiamare un webmethod:
private Report reportBean = new Report();
@Mock
HttpSession mockedSession = mock(HttpSession.class);
@Before
public void injectMockEntityManager(){
EntityManager entityManager = mock(EntityManager.class);
reportBean.emReport = entityManager;
Functions fnct= mock(Functions.class);
reportBean.fnct=fnct;
}
@Test
public void testReport() throws WSException {
reportBean.getReport("myReport", new Date(), new Date());
TimeUnit.SECONDS.toMillis(1));
}
La classe Report and Functions è @Stateless, e nel Report I uso @EJB per chiamare la classe functions, quello che ho visto è ogni volta che chiamo un metodo che è in un EJB come functions.getElement return null, quindi lì è un'alternativa per chiamare il metodo web senza usare un client come ho spiegato all'inizio o no? grazie