상황

Jsoup을 이용해서 html 문서를 읽어들여 정보를 추출하는데 매번 네트워크로 http 요청을 보내고 받는 부하가 커서 테스트가 느려지고 있음.


show >>


브라우저에서 읽어들인 페이지를 test-resource 폴더에 복사해놓고 로컬에 있는 파일을 읽어서 테스트를 하는데 문제는 Jsoup이 네트워크로 요청을 보내는 인터페이스와 로컬에 있는 파일을 읽어들이는 인터페이스가 서로 다르다는 것.


웹 요청을 보낼때는 아래와 같고


Jsoup.connect( url );


로컬에서 읽어들일때는


Jsoup.parse(...);


를 사용한다.


해결방법


doSomething 메소드는 두가지 일을 하고 있음.


1. 요청 정보를 설정하고

2. 응답을 받아서 정보를 추출함


이 두가지 일을 별도의 메소드로 만들어서 분리하고.

show >>


테스트코드에서는 로컬에 있는 테스트 문서를 읽어들인 후에 retrieve 메소드를 호출함으로써 테스트 가능성을 높일 수 있음.


교훈


메소드가 한가지 일만 하게 할 것.


Posted by yeori
,