Я пытаюсь проверить метод с этой подписью:тест MVC контроллера с атрибутом сеанса
@Autowired
HttpSession http_Session;
@RequestMapping(method=RequestMethod.GET, value="/search/findByName")
public @ResponseBody List<Map> search(@RequestParam(value="name", required=true) String name){
Integer user_id = http_Session.getAttribute("userinfo");
}
UserInfo является классом, который содержит информацию о пользователе и установленный в рамках сеанса, когда пользователь вошел in.but когда я пытаюсь тест:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {
"classpath:/META-INF/applicationContext.xml"})
public class userControllerTest {
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext).build();
}
@Test
public void userTest() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/search/findByName").param("name", "bob"))
.andDo(print())
.andExpect(MockMvcResultMatchers.status().isOk());
}
проблема атрибут класса UserInfo установлена в другом методе так, когда я пытаюсь получить доступ к нему в этом методе я получил NullPointerException, и автоматическое связывание с HTTPSession я получил новую сессию для каждого метода я должен проверить.
Что мне делать с атрибутом сеанса, мой метод не принимает параметр сеанса, и для каждого теста он создает WebApplicationContext с новым сеансом.
Большое спасибо .its работает нормально – Alex2330