Jmockit 使用小计 1.46

1自动装配

在后面的用jmockit声明的对象会自动检查前面的jmockit注解对象是否可以注入本类的内部对象,如果适配成功就注入

2mock接口与实例

mock之后的对象是会被覆盖的,

对于构造方法赋值给接口的情况,请直接mock实例,否则会出现实例不对应而出现 missing 报错的情况

 @Test
    void doIt(@Mocked XXXXX xxxxx) {
        new Expectations() {{
            new XXXXX((SSSS) any);
            result=xxxxx;  
        }};
}

 

对于mock方法中的不定参数,包括构造函数,尽量用any ,原因是构造参数的个体逻辑差异会出现执行时 missing的情况

3注解的选择

@Tested 的对象内部逻辑是要执行的,@Mocked的内部逻辑会被忽略 要注意被@Mocked是无法记入覆盖率的,因为内部没有逻辑

4Mock执行

如果已经Mock了对象,但是方法的参数是实例时参数校验还是会被执行的,如果是用Tested修饰对象执行方法内部出错会使程序报错进而使mock失效

 4关于 new Expectations() mock 静态类 

like this  new Expectations(LocalTime.class)  这个形式接口(interface)玩不了,因为没有实体类也就没有构造方法

5 Expectations 的使用

这个方法不能mock私有方法,但是如果一个项目所有方法都是私有的也是不可能的,尽量mock暴露在外的公共方法

posted @ 2020-06-17 15:50  大哥超帅  阅读(341)  评论(0编辑  收藏  举报