더북(TheBook)

테스트 메서드가 제일 먼저 하는 일은 FirefoxDriver를 사용하여 독서 목록의 메인 페이지에 GET 요청을 수행하는 것이다. 그런 다음 페이지에서 <div> 요소를 찾고 목록에 책이 없음을 표시하는 메시지를 찾아 검증한다.

그다음 몇 줄은 폼에서 필드를 찾은 후 FirefoxDriversendKeys() 메서드를 사용하여 주어진 값으로 필드를 채우도록 키 입력 이벤트를 만든다. 마지막으로 <form> 요소를 찾아서 폼을 전송한다.

폼이 전송되면 웹 브라우저는 목록에 새 책을 포함한 페이지로 이동해야 한다. 마지막 몇 줄은 목록에 있는 <dt><dd> 요소를 찾아서 폼에서 전송한 데이터가 있는지 검증한다.

이 예제 코드 테스트를 시작하면 웹 브라우저를 실행한 후 독서 목록 애플리케이션을 로드한다. 잘 지켜보면 마치 유령이 폼을 자동으로 채우는 것처럼 느껴질 것이다. 하지만 애플리케이션을 사용하는 유령이 아니라 테스트다.

이 테스트에서 가장 중요한 점은 @WebIntegrationTest 애너테이션으로 애플리케이션과 서버를 실행할 수 있었고, 그 덕택에 셀레늄이 웹 브라우저로 테스트할 수 있었다는 것이다. 하지만 이 테스트 방식에서 특히 더 흥미로운 점은 서버를 실행하려고 애플리케이션 빌드에 일부 플러그인을 의존성으로 추가하지 않고도 IDE의 테스트 기능을 이용하여 원하는 만큼 테스트를 실행할 수 있다는 것이다.

셀레늄을 이용한 테스트가 유용하다고 생각한다면 유준 량(Yujun Liang)과 알렉스 콜린스(Alex Collins)가 쓴 『Selenium WebDriver in Practice』(http://manning.com/liang/)에서 더 상세한 내용을 참고하라.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.