如何测试GWT / GWTP项目?

时间:2011-12-11 01:06:25

标签: unit-testing testing gwt gwt-platform

我目前正在使用GWT,GWTP构建Web应用程序。

我对测试有一些疑问:

  • GWTP或GWT是否有类似Lint的工具?
  • 如何测试演示者? (GWTP with Mockito
  • 如何测试观点?

感谢。

2 个答案:

答案 0 :(得分:3)

使用Jukito可以轻松对演示者进行单元测试。以下是使用Jukito进行测试的Presenter的快速示例。

@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的理念中,Views不应该直接进行单元测试。使用作为Presenter的从属的哑视图,可以通过演示者上的单元测试来测试大多数逻辑。像Selenium这样的工具更适合测试UI交互性。

答案 1 :(得分:2)

谷歌推出了great article关于在GWT中使用不同测试方法的建议。绝对检查一下。就个人而言,我在测试业务逻辑等后端内容时使用JUnit,而从浏览器的角度来看,Selenium用于测试UI和应用程序。