2009-08-24 4 views
1

クライアント側のGWTコードをGWTTestCaseなしでテストできますか?私はどこかで聞いたことがあります(Google IO 2009の会議の1つだと思います)、DOMを使ってJavascriptではなく、JVMで偽のDOMでコードをテストしています。それは素晴らしいだろう。このことのポイントは、スピード(大きさのオーダー)を得ることであろう。誰にどのようにこれを行うにはどのようなアイデアがありますか?スタックオーバーフローに関する私の最初の質問は、私はこの権利をやっていることを願っています。おかげさまで Eugen。 GWTTestCaseとDOMを使用しないGWTテスト

答えて

3

あなたはRay RyanによってGoogle I/O sessionをチェックアウトする必要があります。

基本的に、モデル/ビュー/プレゼンターパターンを使用して、すべてのDOMアクセスコードを「表示」部分に抽象化することができます。これを行うことで、モックビューを作成し、ブラウザやDOMを必要とせずにjvm経由で実行する標準のju​​nitテストを使用してモデル/プレゼンターをテストすることができます。

+0

まだ存在します**ビューの一部**コード実装がテストされる必要があります。たとえば、ユーザーが値を入力すると、後でその値がプレゼンターに表示されます。同じ値がプレゼンターにプッシュ/プルされます。 –

2

あなたが探しているものではありませんが、 Model-View-Presenterパターンを使用する必要があります。 DOMを必要とするすべてのコードは、Viewクラスに入る必要があり、可能な限りダムでなければなりません。複雑なロジックがPresenterクラスに入ります。 GWTTestCaseを使用せずにプレゼンタークラスをテストすることができます。

例えば、ビューのような方法があるかもしれません:

void setResponseText(String text); 

、その後のようなものを見ることができますあなたのプレゼンターのテストケース:

void testSayHi() { 
    expect(mockView.setResponseText("hi there")); 
    replayMocks(); 
    presenter.sayHi(); 
    verifyMocks(); 
} 
関連する問題