mock测试spring boot的CRUD服务

本文介绍了如何使用MockMvc进行Spring Boot的CRUD服务测试。通过@RunWith、@SpringBootTest和@WebAppConfiguration注解设置测试环境,模拟ServletContext并加载上下文。接着阐述了如何构建MockMvc对象,利用它来模拟RESTful请求,展示了一个测试效果示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

controller如下:

@RestController
public class GithubController {
    @Autowired
    private GitHubRepository repository;
    
    @Autowired
    private GithubEntityManager manager;
    
    /**
     * attention:用户名可能存在多个
     * Details:根据用户名查询数据库
     * @author chhliu
     */
    @RequestMapping(value="github/get/users/{username}", method=RequestMethod.GET)
    public ResultMsg<List<GitHubEntity>> getGithubByUsername(@PathVariable("username") final String username){
        ResultMsg<List<GitHubEntity>> res = new ResultMsg<List<GitHubEntity>>();
        try {
            Assert.hasLength(username, "username must be not null!");
            List<GitHubEntity> list = repository.findEntityByUserName(username);
            res.setResponseObject(list);
            res.setOK(true);
        } catch (Exception e) {
            res.setErrorMsg(e.getMessage());
            res.setOK(false);
        }
        return res;
    }
    
    /**
     * attention:id唯一
     * Details:根据id查询数据库
     * @author chhliu
     */
    @RequestMapping(value="github/get/user/{id}", method=RequestMethod.GET)
    public ResultMsg<GitHubEntity> getGithubById(@PathVariable("id") final int id){
        ResultMsg<GitHubEntity> msg = new ResultMsg<GitHubEntity>();
        try {
            boolean isExists = repository.exists(id);
            if(isExists){
                GitHubEntity en = repository.findOne(id);
                msg.setResponseObject(en);
                msg.setOK(true);
            }else{
                msg.setErrorMsg("the record id is not exist!");
                msg.setOK(false);
            }
        } catch (Exception e) {
            msg.setErrorMsg(e.getMessage());
            msg.setOK(false);
        }
        return msg;
    }
    
    /**
     * attention:
     * Details:查询所有的结果,并分页和排序
     * @author chhliu
     */
    @RequestMapping(value="github/get/users/page", method=RequestMethod.GET)
    public ResultMsg<Page<GitHubEntity>> findAllGithubEntity(final int pageOffset, final int pageSize, final String orderColumn){
        ResultMsg<Page<GitHubEntity>> res = new ResultMsg<Page<GitHubEntity>>();
        try {
            res.setResponseObject(manager.findAllGithubEntity(pageOffset, pageSiz
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值