Spring Security自定义登录页面测试使用默认登录

时间:2018-10-11 14:29:42

标签: junit spring-security

我有一个自定义登录页面,出于完整性考虑,我还希望对其进行单元测试。我有一个具有@GetMapping("/login")的Controller(称为SecurityController),它将向模型添加导航对象。

但是以下代码在NPE上失败,因为改为使用默认登录页面(我在控制台中看到它),因此我的模型为null:

@RunWith(SpringRunner.class)
@WebMvcTest(SecurityController.class)
@SuppressWarnings("unchecked")
public class SecurityControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @Test
    public void testLogin() {
        try {
            Map<String, Object> model = mockMvc.perform(get("/login").with(user(TestConstants.USER_WRAPPER))).andReturn().getModelAndView().getModel();
            List<Navigation> navigation = (List<Navigation>) model.get("navigation");
            Navigation login = navigation.get(0);
            assertEquals("/app/login", login.getPath());
            assertEquals("Login", login.getLabel());
            assertTrue(login.isActive());
        } catch (Exception e) {
            fail();
        }
    }
}

@WebMvcTest(SecurityController.class)不足以告诉spring使用此控制器吗?有没有一种简便的方法可以在此测试中使用我的控制器,或者我需要重命名它?

0 个答案:

没有答案
相关问题