Как можно смоделировать предоставленный контейнером объект (например, HttpSession) при модульном тестировании приложения GWT? - PullRequest
0 голосов
/ 17 мая 2011

В настоящее время я пытаюсь выполнить модульное тестирование моего сервисного уровня (все классы * Impl.java) в приложении GWT.Проблема в том, что в коде у меня есть зависимость, которая нацелена на объект, предоставленный Httpsession.На самом деле, я сохраняю объект User (зарегистрированный в данный момент пользователь) в httpSession.

Чтобы получить его обратно из HttpSession (в классе * Impl.java), я использую это:

Пользователь user = ServiceUtil.getUser (getThreadLocalRequest (). GetSession ());

Как можно смоделировать этот объект из моего модульного тестакод?

спасибо большое,

Ответы [ 2 ]

1 голос
/ 08 октября 2012

В тестовом примере JUnit вы можете написать

    HttpSession session = new MockHttpSession();

Где MockHttpSession это это

Вы можете поместить свой пользовательский объект в этот сеанс, а затем выполнить тестовый набор.

0 голосов
/ 17 мая 2011

Я рекомендую вам изменить структуру вашего приложения, чтобы уровень обслуживания не зависел от таких вещей, как сеанс (независимость от контекста), а вместо этого методы, которым требуется какой-либо пользовательский объект, вводят его (через параметр или тем не мение). Таким образом, на самом деле вы включаете очень тонкий уровень представления (или как бы вы его не называли), который обрабатывает такие вещи, как ответ на запросы HTTP, вход пользователя в систему и помещение объекта пользователя в сеанс, и просто вызывает методы уровня обслуживания.

Таким образом, вы можете смоделировать ваш пользовательский объект в модульном тесте, передать его на уровень обслуживания и вам не нужны никакие фиктивные рамки.

...