Usaría algo como EasyMock para esta prueba. Los frameworks burlones son una forma ideal de eliminar dependencias externas de una clase y le brinda control total sobre el resultado de dependencias externas durante las pruebas. Para extender un poco su ejemplo:
class WebClass {
private WebServiceInterface webserviceInterface;
void method(){
R result = webServiceInterface.performWebServiceCall();
... do something with result
}
public void setWebServiceInterface(WebServiceInterface webServiceInterface){
this.webServiceInterface = webServiceInterface;
}
}
interface WebServiceInterface {
R performWebServiceCall();
}
class WebClassTest {
private WebServiceInterface mock;
private R sampleResult = new R();
@Before
public void before(){
mock = EasyMock.createMock(WebServiceInterface.class);
}
@Test
public void test() {
WebClass classUnderTest = new WebClass();
EasyMock.expect(mock.performWebServiceCall()).andReturn(sampleResult);
classUnderTest.setWebServiceInterface(mock);
classUnderTest.method();
EasyMock.verify(mock);
}
}
Lo primero que tendrá que hacer es extraer la lógica en su clase donde usa Jersey para obtener un recurso web y llamar al servicio web a una clase separada. Crear una interfaz para esta clase le permitirá crear una simulación a la que luego puede dictar el comportamiento.
Una vez que se crea esta interfaz, puede crear un simulacro con EasyMock, que devolverá un objeto específico según su caso de prueba. El ejemplo anterior es una simplificación de cómo estructurar una prueba simulada básica y cómo funcionará su interfaz.
Para obtener más información sobre los marcos de simulación, consulte esta pregunta . Además, este ejemplo supone el uso de Java, pero los marcos de simulación están disponibles en todos los idiomas y, aunque se implementan de manera diferente, generalmente funcionarán de la misma manera