Spring MVC Test с безопасностью и сеансом

Я использую механизм входа в систему на основе формы безопасности Spring, после успешного входа в систему я сохраняю один объект в сеансе. Использование этого объекта, хранящегося в сеансе, чтобы решить судьбу следующих запросов. Но теперь, когда я тестирую это с помощью теста Spring mvc с поддержкой безопасности, я не могу заполнить этот объект сеанса после успешной аутентификации. Я попытался предоставить сеанс с объектом, заполненным во время входа в систему, но я думаю, что весенняя безопасность очищает этот сеанс.

Итак, как я могу установить этот объект в сеанс после успешного входа в систему в весеннем тесте mvc.


person MasterCode    schedule 06.07.2015    source источник
comment
Вы можете использовать Moq stackoverflow.com/questions/524457/   -  person Narek Arzumanyan    schedule 06.07.2015
comment
@NarekArzumanyan Я ищу то, что дает весенний тест безопасности   -  person MasterCode    schedule 06.07.2015


Ответы (1)


Если вы хотите проверить содержимое сеанса в модульных тестах MVC, вам следует подделать сеанс. Вы можете использовать объект Mock для подделки сеанса.

person Narek Arzumanyan    schedule 07.07.2015
comment
Но безопасность Spring очищает предыдущий сеанс и создает новый сеанс каждый раз, когда вы успешно аутентифицируете ... И мой объект сеанса также заполняется после аутентификации. Поэтому при тестировании с использованием formLogin (), у которого нет возможности принимать макетные сеансы - person MasterCode; 07.07.2015
comment
var user= new User(); var mockSession = new Mock<HttpSessionStateBase>(); mockSession.SetupGet(s => s["CurrentUser"]).Returns(user); сеанс [CurrentUser] всегда возвращает пользователя - person Narek Arzumanyan; 07.07.2015