2013-11-20 1 views
3

Jersey를 사용하여 REST 클라이언트에 대한 일부 JUnit 테스트를 빌드 중이므로 JUnit에서 일부 테스트를 실행하기 위해 서버로 보낸 데이터 사본이 있어야합니다. QARecord 개체가 JSON 직렬화 및 서버에 전송되는 두 통화 사이에서Jersey 클라이언트가 String으로 데이터를 보냄

Invocation invocation = serviceWebTarget.request(MediaType.APPLICATION_JSON). 
         buildPut(Entity.json((QARecord) valuesList.get(0))); 
Response response = invocation.invoke(); 

을하지만 난 그것을 액세스 할 수있는 방법을 찾을 수 없습니다 :

현재 내 고객이 호출합니다. 코드를 디버깅하여 변환 된 JSON 텍스트가 포함 된 호출 또는 응답에서 변수를 찾지 못했습니다.

보내진 데이터를 내 JUnit 테스트를 위해 String 또는 File로 가져 오는 방법은 무엇입니까?

답변

0

정확하게 클라이언트가 서버에 요청으로 보낸 정확한 내용을 확인하고 싶다고 생각 했으므로 맞습니까? 만약 그렇다면 당신의 단위 테스트는 얼마나 정확합니까?

예를 들어 Jersey는 클라이언트 코드 테스트를위한 기본 클래스 인 JerseyTest 클래스를 제공합니다.

몇 마디로 그런 테스트는 내부의 핸들러를 실행할 수있는 특별한 테스트 컨테이너를 실행합니다. Mockito와 결합하거나 직접 처리기를 만들면 테스트가 끝날 때 클라이언트가 응답을 받았을 때 클라이언트 요청으로 "캡처 한"내용을 확인할 수 있습니다. 그 중에서도 클라이언트 코드가 서버에 보내는 것뿐만 아니라 다양한 응답 (성공 또는 예외)을 에뮬레이트하여 클라이언트의 동작을 검사 할 수있는 가능성을 제공합니다.

클라이언트가 실제로 서버에 보내는 내용을 가져 오려면 저지 클라이언트 필터를 작성하고 거기에서 요청 본문을 가져올 수 있습니다. Filters and Interceptors

관련 문제