상황
Jsoup을 이용해서 html 문서를 읽어들여 정보를 추출하는데 매번 네트워크로 http 요청을 보내고 받는 부하가 커서 테스트가 느려지고 있음.
show >>
브라우저에서 읽어들인 페이지를 test-resource 폴더에 복사해놓고 로컬에 있는 파일을 읽어서 테스트를 하는데 문제는 Jsoup이 네트워크로 요청을 보내는 인터페이스와 로컬에 있는 파일을 읽어들이는 인터페이스가 서로 다르다는 것.
웹 요청을 보낼때는 아래와 같고
Jsoup.connect( url );
로컬에서 읽어들일때는
Jsoup.parse(...);
를 사용한다.
해결방법
doSomething 메소드는 두가지 일을 하고 있음.
1. 요청 정보를 설정하고
2. 응답을 받아서 정보를 추출함
이 두가지 일을 별도의 메소드로 만들어서 분리하고.
show >>
테스트코드에서는 로컬에 있는 테스트 문서를 읽어들인 후에 retrieve 메소드를 호출함으로써 테스트 가능성을 높일 수 있음.
교훈
메소드가 한가지 일만 하게 할 것.
'Dev > Java' 카테고리의 다른 글
java.lang.Comparable과 java.util.Comparator 의 차이 및 활용1 (0) | 2019.04.27 |
---|---|
자바 Class와 ClassLoader에서 getResourceAsStream() 메소드 (0) | 2014.02.11 |
[JSR 310] New Date and Time API (0) | 2012.09.20 |