您的示例使用普通的单元测试来测试您的控制器。在此设置中,控制器由Mockito创建(控制器字段由Mockito的@InjectMocks注释)。
Mockito不了解Spring,因此在您的测试中不会设置Spring Security。
您需要使用SpringRunner来运行测试。该运行程序具有Spring意识,可以让您在运行测试之前正确初始化控制器。
测试应该看起来像这样(junit5):
@ExtendWith(SpringExtension.class)@WebMvcTest(controllers = Controller.class)public class ControllerTest { @Autowired private MockMvc mockMvc; @MockBean private Service serviceMock; @Test public void test() throws Exception { mockMvc.perform(get(URL)) .andExpect(status().isOk()); }}查看我们的Spring文档或一些教程以获取更多信息
https://spring.io/guides/gs/testing-web/
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html



