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";
    }
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值