Как протестировать проект GWT/GWTP?

В настоящее время я создаю веб-приложение с использованием GWT, GWTP.

И у меня есть несколько вопросов по тестам:

  • Существует ли инструмент, похожий на Lint, для GWTP или GWT?
  • Как тестировать ведущих? (GWTP с Mockito)
  • Как проверить просмотры?

Спасибо.


person John    schedule 11.12.2011    source источник


Ответы (2)


Google опубликовал отличную статью об использовании различных методологий тестирования с GWT. Обязательно проверьте это. Лично я использую JUnit, когда тестирую внутреннюю часть, например бизнес-логику. и Selenium для тестирования пользовательского интерфейса и приложения в целом с точки зрения браузера.

person Chris Cashwell    schedule 11.12.2011
comment
После того, как я задал вопрос, я обнаружил, что могу использовать Mockito для модульного тестирования докладчика. Но я все еще не могу протестировать представление, так как я также работаю со SmartGwt, и, похоже, я не могу создать какой-либо объект smartgwt в модульном тесте. Не могли бы вы рассказать мне некоторые подробности о тестировании с Selenium? Спасибо. - person John; 11.12.2011
comment
Проверьте тег Selenium OnGWT @ ongwt.com/tag/Selenium, много полезной информации. - person Chris Cashwell; 11.12.2011

Презентаторов можно легко протестировать с помощью Jukito. Вот краткий пример тестирования Presenter с помощью 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, лучше подходят для тестирования интерактивности пользовательского интерфейса.

person spg    schedule 27.08.2012