2014-01-29 3 views
1

코드베이스 (SVN에서 로컬 컴퓨터에 체크 아웃 됨)에 액세스 할 수 있습니다. Grails 프레임 워크 (MVC 아키텍처)를 사용하여 Java와 Groovy를 사용하여 작성되었습니다. 나는 테스터이고 테스트 자동화의 일환으로 컨트롤러에 호출 할 코드를 작성하고 그 답례로 데이터베이스의 응답 또는 항목을 보는 관점에서 결과를 확인할 수 있습니다. 기본적으로 UI 부분을 건너 뛰고 싶습니다.UI를 사용하지 않고 자바 애플리케이션 테스트를 자동화 할 수 있습니까?

어떻게 시작할 수 있습니까? 아마 dev에 프로젝트 내 코드를 작성할 수 없습니다 (나는 생각하지 못했습니다). 내가 별도의 프레임 워크를 만들어야합니까? 아니면 jar 파일을 모두 가져 와서 프로젝트에 포함시키고 그 위에 코드를 작성할 수 있습니까?

post의 대답은 실제로 내가 찾고있는 것이지만 Java 응용 프로그램입니다. 사용할 수있는 API가 있습니까?

추가 정보가 필요하면 알려주십시오.

+4

Grails 프레임 워크에서 잘 문서화되고 잘 통합 된 테스트 기능을 사용할 수없는 이유는 무엇입니까? – RaviH

답변

1

응용 프로그램이 Json, XML 또는 유사한 API를 제공하지 않으면 jUnit 테스트 메소드에서 HtmlUnit과 같은 테스트 라이브러리를 사용할 수 있습니다.

"Getting Started" 섹션에서 예 : HtmlUnit과는 (자바에서 100 %를 기록) 가상 브라우저처럼 작동하려고하지만, 예를 들어, 자바 스크립트를 실행에 약간의 제한됩니다

@Test 
public void homePage_Firefox() throws Exception { 
    final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_17); 
    final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net"); 
    Assert.assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText()); 

    webClient.closeAllWindows(); 
} 

참고.

그런 다음 jsoup 또는 Jericho HTML Parese과 같은 다른 라이브러리를 사용하여 코드를 검사하고 데이터베이스에서 확인하려는 값을 가져옵니다.

반면에 응용 프로그램에서 데이터를 가져 오는 방법을 제공하는 경우 Jersey Client API을 사용하여 REST 요청을 만들고 값을 가져올 수 있습니다. 그것은 매우 간단합니다. 이 예를보세요 :

Client client = ClientBuilder.newClient(); 
WebTarget target = client.target("http://localhost:9998").path("resource"); 

Form form = new Form(); 
form.param("x", "foo"); 
form.param("y", "bar"); 

MyJAXBBean bean = 
target.request(MediaType.APPLICATION_JSON_TYPE) 
    .post(Entity.entity(form,MediaType.APPLICATION_FORM_URLENCODED_TYPE), 
     MyJAXBBean.class); 
관련 문제