我将使用springsecurity测试我的控制器。
@PostMapping("/xx")
public String xx(Authentication auth){
String userId = (String)auth.getPrincipal();
....
}我不知道如何模拟身份验证对象。或者有其他方法来处理它吗?
我的测试如下所示
public class MyControllerTest{
@Autowired
private XxController xxController;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.standaloneSetup(xxController).build();
}
@Test
public void xxtestMethod() throws Exception {
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.post(/xx))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
}
}发布于 2021-04-07 23:11:16
对于基本身份验证,在尝试了不同的方法后,我发现这对我很有效:
MockMvcRequestBuilders
.post(urlEndpoint)
.principal(new MyAuthentication())请注意,MyAuthentication类实现了Authentication接口
https://stackoverflow.com/questions/59278974
复制相似问题