Как написать модульный тест для маршрута / конечной точки с авторизацией в заголовке? - PullRequest
0 голосов
/ 10 декабря 2018

Я пишу этот маршрут с Spring Boot и авторизацией с использованием auth0.он должен возвращать 401, когда у него нет авторизации в заголовке, и возвращать 200, когда в заголовке есть действительный идентификатор id_token auth0.Как правильно написать модульный тест для него?

Чтобы получить авторизацию в заголовке, должен ли я получить настоящий id_token или есть способ его издеваться?Если мне нужно использовать настоящий id_token, правильно ли хранить его в виде строки в тестовом коде или я должен хранить его где-то еще (например, в качестве переменной среды), чтобы защитить его?

1 Ответ

0 голосов
/ 10 декабря 2018

Spring имеет аннотацию @WithMockUser, чтобы помочь методам тестирования, где требуется аутентифицированный пользователь.Это можно использовать следующим образом:

@RunWith(SpringRunner.class)
@SpringBootTest
public class MyControllerTests {

    private MockMvc mockMvc;

    @Before
    public void setup() {
        mockMvc = MockMvcBuilders
            .webAppContextSetup(context)
            .apply(springSecurity())
            .build();
    }

    @Test
    @WithMockUser(roles = "ADMIN")
    public void shouldUpdateEntry() throws Exception {
        ....
    }
}

Обратите внимание, что это не проверяет саму аутентификацию.@WithMockUser предназначен для тестирования методов, которые работают с данной привилегией.

...