私は現在、GWT、GWTPを使用してWebアプリケーションを構築しています。
そして、私はテストについていくつか質問があります:
- GWTPまたはGWT用のLintのようなツールはありますか?
- プレゼンターをテストする方法は?(Mockitoを使用したGWTP)
- ビューをテストする方法は?
ありがとう。
私は現在、GWT、GWTPを使用してWebアプリケーションを構築しています。
そして、私はテストについていくつか質問があります:
ありがとう。
プレゼンターは、Jukitoを使用して簡単に単体テストできます。これは、Jukitoを使用してテストされているプレゼンターの簡単な例です。
@RunWith(JukitoRunner.class)
public class ShowCommentsPresenterTest {
@Inject
private ShowCommentsPresenter showCommentsPresenter;
@Inject
private PlaceManager placeManager;
@Test
public void onReset_PlaceRequestHasNoShowId_ShouldHideView() {
//given
when(placeManager.getCurrentPlaceRequest()).thenReturn(new PlaceRequest());
//when
showCommentsPresenter.onReset();
//then
verify(showCommentsPresenter.getView()).hide();
}
@Test
public void onReset_PlaceRequestHasAShowId_ShouldDisplayView() {
//given
String someShowId = "12345";
when(placeManager.getCurrentPlaceRequest()).thenReturn(new PlaceRequest()
.with(ParameterTokens.getShowId(), someShowId));
//when
showCommentsPresenter.onReset();
//then
verify(showCommentsPresenter.getView()).display();
}
}
GWTPの哲学では、ビューを直接単体テストするべきではありません。プレゼンターのスレーブであるダムビューを使用すると、ほとんどのロジックをプレゼンターの単体テストでテストできます。Seleniumのようなツールは、UIの対話性をテストするのにより適しています。
Googleは、GWTでさまざまなテスト方法を使用することについてのすばらしい記事を発表しました。ぜひチェックしてみてください。個人的には、ビジネスロジックなどのバックエンドをテストする場合はJUnitを使用し、ブラウザーの観点からUIとアプリケーション全体をテストする場合はSeleniumを使用します。