您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Java单元测试Mockito如何用

2025/1/20 2:25:50发布14次查看
mockito简介
    调用mock对象的方法时,不会执行真实的方法,而是返回类型的默认值,如object返回null, int返回0等,否则通过指定when(方法).thenreturn(value)来指定方法的返回值。同时mock对象可以进行跟踪,使用verify方法看是否已经被调用过。而spy对象,默认会执行真实方法,返回值可以通过when.thenreturn进行覆盖。可见mock只要避开了执行一些方法,直接返回指定的值,方便做其他测试。
service测试用例需要的依赖
  <dependency>            <groupid>junit</groupid>            <artifactid>junit</artifactid>            <version>4.12</version>            <scope>test</scope>        </dependency>        <dependency>            <groupid>org.mockito</groupid>            <artifactid>mockito-core</artifactid>            <version>2.23.4</version>            <scope>test</scope>        </dependency>        <dependency>            <groupid>org.springframework.boot</groupid>            <artifactid>spring-boot-test</artifactid>            <version>2.1.13.release</version>        </dependency>
代码示例
@runwith(mockitojunitrunner.class)@springboottest()public class studentservicetest {    @injectmocks    studentservice studentservice = new studentserviceimpl();    @mock    studentdao     studentdao;    @before    public void before(){        mockito.doreturn(new studentdo(张三, 18)).when(studentdao).read(mockito.anystring());    }    @test    public void testread(){        studentdo read = studentservice.read();        assert.assertnotnull(read);    }}
controller测试用例需要的依赖
<dependency>            <groupid>org.springframework</groupid>            <artifactid>spring-test</artifactid>            <version>5.1.14.release</version>        </dependency>        <dependency>            <groupid>com.jayway.jsonpath</groupid>            <artifactid>json-path</artifactid>            <version>2.4.0</version>        </dependency>
代码示例
@runwith(mockitojunitrunner.class)@springboottest()public class studentcontrollertest {    @resource    mockmvc mockmvc;    @injectmocks    studentcontroller studentcontroller;    @mock    studentservice    studentservice;    @before    public void before() {        mockmvc = mockmvcbuilders.standalonesetup(studentcontroller).build();        mockito.doreturn(new studentdo(张三, 18)).when(studentservice).read(mockito.anystring());    }    @test    public void testread() throws exception {        mockhttpservletrequestbuilder request = mockmvcrequestbuilders.get(/student/read/1);        mockmvc.perform(request)                .anddo(print())                .andexpect(status().isok())                .andexpect(jsonpath($.name).value(张三));    }}
以上就是java单元测试mockito如何用的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product