Пользовательский тест страницы входа в Spring Security использует вход по умолчанию - PullRequest
0 голосов
/ 11 октября 2018

У меня есть пользовательская страница входа в систему, и для полноты картины я также хочу провести для нее тестовый модуль.У меня есть контроллер (называемый SecurityController), который имеет @GetMapping("/login"), который добавляет объект навигации в модель.

Но следующий код завершается ошибкой с 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), чтобы указать пружине использовать этот контроллер?Есть ли простой способ использовать мой контроллер в этом тесте или мне нужно его переименовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...