我将使用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();
}
}
答案 0 :(得分:0)
对于基本身份验证,在尝试了不同的方法后,我发现这对我有用:
MockMvcRequestBuilders
.post(urlEndpoint)
.principal(new MyAuthentication())
注意 MyAuthentication 类实现了 Authentication 接口