spring @MockBean HttpSession - Квалифицированный компонент типа 'javax.servlet.http.HttpSession' недоступен - PullRequest
0 голосов
/ 02 ноября 2019

Я внедряю HttpSession в свой контроллер с помощью @Autowired:

@RestController
public class MyController {

    @Autowired
    private HttpSession httpSession;

    @GetMapping("hello")
    public String getHello() {
        return "hello " + httpSession.getId();
    }

}

Как я могу смоделировать сеанс в аннотированном тесте @WebMvcTest?

@RunWith(SpringRunner.class)
@WebMvcTest(MyController.class)
public class MyControllerTest {

    @Autowired
    private MockMvc mvc;

    @MockBean
    private HttpSession session;

    @Test
    public void testGetHello() throws Exception {
        when(session.getId()).thenReturn("sessionId");
        mvc.perform(get("/hello"))
            .andExpect(status().isOk())
            .andExpect(content().string("hello sessionId"));
    }

}

Это решение выдает исключение:No qualifying bean of type 'javax.servlet.http.HttpSession' available

...