Java 통합 테스트에서 느린 HTTP 연결을 시뮬레이션 할 수 있으므로 서버가 연결을 확인할 때까지 기다려야하는 시간을 정의 할 수 있습니까? JAX-WS 웹 서비스도 지원하는 솔루션이 완벽 할 것입니다.Java 통합 테스트를 위해 느린 HTTP 연결을 시뮬레이트 하시겠습니까?
배경 : 나는 통합 테스트에 중앙 타임 아웃 컨 피규 있습니다. 컨 피규 레이터 자체는 기술 독립적이어야합니다. 처음에는 JAX-WS 웹 서비스를 지원하므로 com.sun.xml.ws.connect.timeout
속성이 요청 컨텍스트로 설정됩니다.
(I는 JAX-WS의 일부임을, 그들을 설득하려고합니다 때문에 우리는 그것을 테스트 할 필요는 없지만,이 질문에 내 백업 계획입니다.)
PS를 :있다 일반적으로 느린 연결을 시뮬레이션하는 것에 대해 묻는 다른 질문입니다. 이것은 단위 테스트에서 외부 도구를 사용할 수 없어 특정 연결 시간을 정의 할 수 있어야하기 때문에 다릅니다.
EasyMock을 사용하는 것이 좋습니다. 이름에서 알 수 있듯이 쉽지는 않지만 http 연결 및 데이터베이스와 같은 테스트를 훨씬 쉽게 만듭니다. – JREN
@JREN : EasyMock을 알고 있지만 어떻게 저속 연결을 시뮬레이션 할 수 있습니까? 연결은 JAX-WS에 의해 만들어 지므로 모의 삽입은 어렵습니다. 그렇지 않습니까? –
우리가 일반적으로하는 일은 System.currentTimeMillis()를 반환하는 currentMillis라는 보호 된 메서드를 생성하여 테스트 클래스에서 필드 변수를 반환하여 무시할 수 있도록하지만 시간을 추가하는 것만 큼 시간 스킵을 시뮬레이션합니다. 변수에. – JREN