Ejecute pruebas unitarias en controladores que requieren autenticación

Tengo una aplicación de arranque de primavera que requiere inicio de sesión para algunas acciones. Estoy tratando de probarlos usandoMockMvc, pero no parece funcionar. Sigo recibiendo una respuesta HTTP con el estado 403 (prohibido). Probablemente hay algo mal con la parte de autenticación.

He intentado seguir eldocumentación, pero no pude hacerlo funcionar.

Este es mi código de prueba actual:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {Application.class})
@WebIntegrationTest("server.port = 8093")
public class PasswordChangeTests {
    @Autowired
    private EmbeddedWebApplicationContext webApplicationContext;

    @Autowired
    private UserRepository userRepository;

    private MockMvc mockMvc;

    @Before
    public void setUp() throws Exception {
        this.mockMvc = MockMvcBuilders
                .webAppContextSetup(webApplicationContext)
                .apply(springSecurity())
                .build();
    }

     @Test
     public void changePasswordWorks() throws Exception {
         // Send password change request
         PasswordChangeRepresentation passwordChange = new PasswordChangeRepresentation(DefaultUsers.Admin.getPassword(), "12345678");
         mockMvc.perform(MockMvcRequestBuilders.request(HttpMethod.POST, "/password/change")
                 .content(new ObjectMapper().writeValueAsString(passwordChange))
                 .contentType(MediaType.APPLICATION_JSON)
                 .accept(MediaType.APPLICATION_JSON))
                 .andExpect(status().isOk());

         // Check that the password has been changed
         User user = this.userRepository.findByUsername(DefaultUsers.Admin.getEmail());
         Assert.assertEquals(user.getPassword(), "12345678");
    }
}

Lo siento si me falta algo obvio. Esta es mi primera experiencia con botas de primavera.

Respuestas a la pregunta(1)

Su respuesta a la pregunta