Estrictamente hablando de pruebas unitarias, solo puede probar unidades que tienen un comportamiento determinista .
Una prueba que se conecta a un servidor web externo es una prueba de integración .
La solución es burlarse de la HTTPURLConnection, es decir, crear una clase en las pruebas de su unidad que derive de la clase HTTPURLConnection y que devuelva un valor codificado o un valor parametrizable. EDIT: tenga en cuenta que esto se puede hacer maunally, sin ningún marco de burla.
La clase que consulta el servidor web no se instanciate la HttpURLConnection, pero recibirla a través de un parámetro. En las pruebas de unidad, se crea el HTTPURLConnectionMock, y lo pasa a la clase que interroga al servidor web que lo utilizará, ya que utiliza una HttpURLConnection real. En el código de producción, crea una HTTPURLConnection real y la pasa a la clase.
También puede hacer que su HTTPURLConnectionMock pueda lanzar una IOException, a condiciones de error de prueba. Simplemente tenga un método para decirle que no devuelva el resultado, sino una excepción en la próxima solicitud.
1: objetos Mock despejar cualquier duda acerca de las interfaces. –
ni siquiera pienso en burla el servicio web. Eso suena como la ruta a seguir. – kevindaub