首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mockmvc:使用mockMvc测试控制器时,如何处理认证参数?

mockmvc:使用mockMvc测试控制器时,如何处理认证参数?
EN

Stack Overflow用户
提问于 2019-12-11 12:37:23
回答 1查看 92关注 0票数 0

我将使用springsecurity测试我的控制器。

代码语言:javascript
运行
复制
@PostMapping("/xx")
public String xx(Authentication auth){
    String userId = (String)auth.getPrincipal();
    ....
}

我不知道如何模拟身份验证对象。或者有其他方法来处理它吗?

我的测试如下所示

代码语言:javascript
运行
复制
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();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2021-04-07 23:11:16

对于基本身份验证,在尝试了不同的方法后,我发现这对我很有效:

代码语言:javascript
运行
复制
MockMvcRequestBuilders
            .post(urlEndpoint)
            .principal(new MyAuthentication())

请注意,MyAuthentication类实现了Authentication接口

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59278974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档