您好,欢迎来到一二三四网。
搜索
您的当前位置:首页springboot 单元测试案例

springboot 单元测试案例

来源:一二三四网

1.实际业务:

controller层

@GetMapping(value = "/abc/{username}/acc", produces = MediaType.APPLICATION_JSON_VALUE)
    public Map<String,Set<String>> findUserAccess(@PathVariable(name = "username") String username) throws IAMException {
        InfoLogUtil.debug("findUserAccess start :{}",LOGGER);
        //check Permission,session校验
        userService.checkUserPermission();

        if (StringUtils.isEmpty(username)) {
            throw new IAMException(Error.MISSING_MANDATORY_FIELD.getErrorCode(), Error.MISSING_MANDATORY_FIELD.getErrorMessage());
        }

       return accessService.findUserAccess(username);

    }

service层代码省略....

2.单元测试:

public class AccessControllerTest extends BaseTest {

    @SpyBean
    private AccessService accessService;

    @SpyBean
    private CommonUtilsComponent commonUtilsComponent;

    @Autowired
    private WebApplicationContext wac;
    private MockMvc mvc;
    private MockHttpSession session;

    @Before
    public void setUp() throws IAMException {
        mvc = MockMvcBuilders.webAppContextSetup(wac).build();
        session = new MockHttpSession();
        session.setAttribute("username","admin");//假设已经有登录的session              
        doReturn(new HashMap<String, Set<String>>()).when(accessService)
              .findUserAccess(anyString());
    }



    @Test
    public void findUserAccess_success() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/abc/admin/acc")
                .contentType(MediaType.APPLICATION_JSON)
                .content(findUserAccessRequest_success())
                .session(session))
                .andExpect(MockMvcResultMatchers.status().isOk());
    }

    private String findUserAccessRequest_success() {
        return "{\n" +
                " \"access_codes: [\" "+
                "    \"access_code\": \"code1\"," +
                "    \"access_code\": \"code2\"]\n"+
                "}\t";
    }
}

(时间紧迫,粗略写了一些)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto1234.net 版权所有 湘ICP备2023021910号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务