2012-06-28 5 views
1

Google 웹 툴킷 (GWT)의 개념을 처음 접했고 클라이언트 측 코드를 Java로 코딩 할 수있는 Java API와 툴 세트를 말할 수있는 한, (빌드의 일부로 또는 동적으로 HttpRequests가 들어올 때) Java 코드 에서 클라이언트 측 JS를 생성합니다 (이 중 하나라도 잘못 되었다면 나를 수정하십시오!).GWT 코드를 어떻게 테스트합니까?

내가 더 많거나 적은 것으로 가정하면, 어떻게 테스트 할 것인가? Java 코드에 대한 JUnit 테스트를 작성합니까? 또는 결과/생성 된 JavaScript에 대한 JSUnit 테스트를 작성합니까? JSUnit을 사용하는 경우 GWT는 출력 된 모든 것을 최적화하고 축소하므로 생성 된 함수의 이름과 내부 동작을 어떻게 알 수 있습니까? 미리 감사드립니다!

답변

1

우선, 올바른 것입니다. GWT는 클라이언트 측 Java 코드에서 Javascript 코드를 생성합니다. 그러나 속도면에서 우리는 Java로 진행되는 동안 가능한 한 모든 것을 테스트합니다.

JUnit의 TestCase 또는 GWTTestCase에서 확장하는 표준 JUnit 테스트를 작성합니다.

두 가지 주요 차이점은 다음과 같습니다. 모든 종류의 기본 자바 스크립트 코드를 사용하는 모든 클래스 (위젯 및 그래픽 요소는 이와 유사 함)에 GWTTestCase을 사용합니다. 컴파일러는 이들을 자바 스크립트 코드로 테스트하기 위해 "헤드리스 (headless)"브라우저를 사용할 것이므로이 테스트는 표준 JUnit TestCase에 비해 매우 느립니다.

그 밖의 모든 작업에 표준 TestCase를 사용하는 이유는 무엇보다 (바이트 코드로 실행하면 훨씬 빠릅니다) 그로 인해 MVP 패턴을 사용하여보기를 분리하는 것이 좋습니다 (코드는 GWTTestCase로 테스트 할 수 있습니다). 귀하의 프로그램 (TestCase으로 테스트 할 수있는 코드).

Herehere은 GWT 단위 테스트가 작동하는 방식과 작업을 쉽게하기 위해 어떤 패턴을 사용해야하는지에 대한 두 가지 좋은 기사입니다.

1

여기를 보라 : https://developers.google.com/web-toolkit/doc/latest/DevGuideTesting

기본적으로, 당신이 아래의 JUnit 모든 방법을 사용하고 있습니다 : 순수 자바를이 가능하다고 할 때, GWTTestCase 그렇지 않으면 (자바 -HTMLUnit- 또는 실제 브라우저에서 에뮬레이트 브라우저에서 실행, DevMode에서 컴파일하거나 JS -Ac제품 모드 -)로 컴파일하고 마지막으로 Selenium/WebDriver를 사용하여 통합/수락 테스트를 수행합니다.

관련 문제