2009-08-24 3 views
1

GWTTestCase없이 클라이언트 측 GWT 코드를 테스트 할 수 있습니까? 나는 그들이 가짜 DOM으로 코드를 성공적으로 테스트하고 있다는 것을 (Google IO 2009 컨퍼런스 중 하나라고) 들었습니다. JVM에서는 DOM을 사용하고 Javascript에서는 그렇지 않습니다. 그것은 훌륭 할 것이다. 요점은 속도를 얻는 것입니다 (규모의 순서). 아무도이 일을하는 방법에 대해 어떤 생각을 가지고 있습니까? 스택 오버플로에 대한 나의 첫 번째 질문은 내가이 일을 제대로하고 있다고 희망한다. 감사합니다. . Eugen.GWTTestCase 및 DOM없이 GWT 테스트

답변

3

Ray Ryan이 Google I/O session을 확인해야합니다.

기본적으로 Model/View/Presenter 패턴을 사용하여 모든 DOM 액세스 코드를 '보기'부분으로 추상화 할 수 있습니다. 이렇게하면 브라우저 나 DOM이 필요없는 jvm을 통해 실행되는 표준 junit 테스트를 사용하여 모의보기를 만들고 모델/발표자를 테스트 할 수 있습니다.

+0

여전히있을 것이다 **보기의 일부 ** 코드 테스트가 필요한 구현. 예를 들어, 사용자가 값을 입력하면 나중에 해당 값이 발표자에게 표시됩니다. 동일한 값이 발표자에게 푸시/당겨집니다. –

2

찾고있는 것이 아니지만 Model-View-Presenter 패턴을 사용해야합니다. DOM을 필요로하는 모든 코드는 View 클래스에 있어야하며 가능한 한 바보처럼 사용해야합니다. 복잡한 논리는 Presenter 클래스에서 사용됩니다. 그런 다음 GWTTestCase를 사용하지 않고도 발표자 클래스를 테스트 할 수 있습니다.

예, 뷰 같은 방법이있을 수 있습니다 :

void setResponseText(String text); 

다음과 같이 보일 수 있습니다 발표자 테스트 케이스 :

void testSayHi() { 
    expect(mockView.setResponseText("hi there")); 
    replayMocks(); 
    presenter.sayHi(); 
    verifyMocks(); 
}