Как проверить вызовы веб-службы через Junit - PullRequest
1 голос
/ 26 июня 2019

Я бы хотел протестировать свой веб-сервис с использованием Junit.Однажды мы пропустили модификатор public, и он потерпел неудачу.Таким образом, чтобы избежать такой проблемы на более раннем этапе, мы хотели бы написать контрольные примеры Junit для проверки соединения с веб-сервисом.

Я пытался это сделать, но это не сработало.

String url = "http://localhost:port/webservice/path";
HttpClient client = new DefaultHttpClient();
HttpUriRequest request = new HttpGet( url );

request.setHeader("username", "user1");
HttpResponse httpResponse = 
HttpClientBuilder.create().build().execute(request);
HttpResponse response = client.execute(request);
httpResponse.getStatusLine().getStatusCode();
BufferedReader rd = new BufferedReader(new 
InputStreamReader(response.getEntity().getContent()));
StringBuffer result = new StringBuffer();
while ((line = rd.readLine()) != null) {
     result.append(line);
}

My web service will be like this

@Path("/path") 
public interface WebServiceTest
{
   //list of services
}

Мне нужно узнать, успешен ли мой вызов или нет, с помощью теста Junit.Как это реализовать?Любые другие предложения, кроме Junit, но это должно быть через Java (без Mockito)?

РЕДАКТИРОВАТЬ: Мне нужно это как для SOAP, так и для веб-служб REST.

1 Ответ

0 голосов
/ 26 июня 2019

Попробуйте использовать RestAssured. Используя такой метод, передайте соответствующие значения.

 public static ResponseBody callAPI(String host, String body, String path, String method, Map<String,String> headers){
        RequestSpecBuilder requestSpecBuilder = new RequestSpecBuilder();

        requestSpecBuilder.addHeaders(headers);
        requestSpecBuilder.setBody(body);
        requestSpecBuilder.setBaseUri(host);

        RequestSpecification requetSpecification = requestSpecBuilder.build();
        requestSpecBuilder.setContentType(ContentType.JSON);
        Response rs = null;
        if(method.equals("DELETE")){
            rs  = RestAssured.given(requetSpecification).when().log().all().delete(path);
        }else if(method.equals("POST")){
            rs  = RestAssured.given(requetSpecification).when().log().all().post(path);
        }

        return rs.getBody();

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...