当前位置: 代码网 > it编程>编程语言>Java > SpringBoot使用MockMvc测试get和post接口的示例代码

SpringBoot使用MockMvc测试get和post接口的示例代码

2024年07月05日 Java 我要评论
一、引入mockmvc依赖使用mockmvc,必须要引入依赖<dependency> <groupid>org.springframework.boot&

一、引入mockmvc依赖

使用mockmvc,必须要引入依赖

<dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-test</artifactid>
            <scope>test</scope>
        </dependency>

二、具体演示

1、get请求(单个参数)

测试类代码

@extendwith(mockitoextension.class)
class appcontrollertest {

    private mockmvc mockmvc;

    @mock
    private idb2patrolresultservice idb2patrolresultservice;
    @injectmocks
    private db2patrolresultcontroller db2patrolresultcontroller;

    @beforeeach
    void setup() {
        this.mockmvc = mockmvcbuilders.standalonesetup(db2patrolresultcontroller).build();
    }

    @test
    void testget() throws exception {
        this.mockmvc.perform(mockmvcrequestbuilders.get("/dbm/patrolresult/trigger/{itemcode}","121"))
            .andexpect(status().isok())
            .anddo(mockmvcresulthandlers.print())
            .andreturn();
    }
}

controller类代码

	@getmapping("/trigger/{itemcode}")
    public r<void> execschedule(@pathvariable("itemcode") string itemcode) {
        return patrolresultservice.execschedule(itemcode);
    }

2、get请求(多个参数)

测试类代码:

@extendwith(mockitoextension.class)
class appcontrollertest {

    private mockmvc mockmvc;

    @mock
    private idb2patrolresultservice idb2patrolresultservice;
    @injectmocks
    private db2patrolresultcontroller db2patrolresultcontroller;

    @beforeeach
    void setup() {
        this.mockmvc = mockmvcbuilders.standalonesetup(db2patrolresultcontroller).build();
    }

    @test
    void testpatrolresult() throws exception {
        patrolqueryconfig patrolqueryconfig = new patrolqueryconfig();
        patrolqueryconfig.setitemlevel("0");
        patrolqueryconfig.setstatustype("0");
        string jsonstr = jsonutil.tojsonstr(patrolqueryconfig);
        this.mockmvc.perform(mockmvcrequestbuilders.get("/dbm/patrolresult/list")
                .param("itemlevel","1")
                .param("statustype","2"))
            .andexpect(status().isok())
            .anddo(mockmvcresulthandlers.print())
            .andreturn();
    }
}

controller类代码

	@getmapping("/list")
    public tabledatainfo<patrolresult> getrunstatsdataaggs(patrolqueryconfig patrolqueryconfig) {
        list<patrolresult> patrolresults = patrolresultservice.getpatrolhisresultaggs(patrolqueryconfig);
        return tabledatainfo.build(patrolresults);
    }

3、post请求(多个参数)

测试类代码

@extendwith(mockitoextension.class)
class appcontrollertest {

    private mockmvc mockmvc;

    @mock
    private idb2patrolresultservice idb2patrolresultservice;
    @injectmocks
    private db2patrolresultcontroller db2patrolresultcontroller;

    @beforeeach
    void setup() {
        this.mockmvc = mockmvcbuilders.standalonesetup(db2patrolresultcontroller).build();
    }

    @test
    void testpost() throws exception {
        patrolqueryconfig patrolqueryconfig = new patrolqueryconfig();
        patrolqueryconfig.setitemlevel("0");
        patrolqueryconfig.setstatustype("0");
        string jsonstr = jsonutil.tojsonstr(patrolqueryconfig);
        this.mockmvc.perform(mockmvcrequestbuilders.post("/dbm/patrolresult/list")
                .contenttype(mediatype.application_json_value)
                .content(jsonstr)
                .header(httpheaders.accept,"application/json"))
            .andexpect(status().isok())
            .anddo(mockmvcresulthandlers.print())
            .andreturn();
    }
}

controller类代码

	@postmapping("/list")
    public tabledatainfo<patrolresult> getrunstatsdataaggs(@requestbody patrolqueryconfig patrolqueryconfig) {
        list<patrolresult> patrolresults = patrolresultservice.getpatrolhisresultaggs(patrolqueryconfig);
        return tabledatainfo.build(patrolresults);
    }

三、总结

  • 使用mockmvc可以做到controller层的测试。
  • 在初始化mockmvc的时候:
    (1)如果想测试单个controller
    mockmvc = mockmvcbuilders.standalonesetup(mockmvccontroller).build();
    (2)如果想测试所有controller
    mockmvc = mockmvcbuilders.webappcontextsetup(context).build();

以上就是springboot使用mockmvc测试get和post接口的示例代码的详细内容,更多关于springboot mockmvc测试接口的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com