zoukankan      html  css  js  c++  java
  • 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暴露在外的公共方法

  • 相关阅读:
    [软件安装]MYSQL
    [软件安装]JDK
    maven仓库错误
    java.util.Optional
    【原创】Elasticsearch无宕机迁移节点
    【原创】MapReduce备份Elasticsearch数据到HDFS(JAVA)
    python3项目打包成exe可执行程序
    python的frame切换
    switch_to_frame() switch_to.frame()
    如何快速查找透明的icon,让你再也不缺icon的方法
  • 原文地址:https://www.cnblogs.com/funkboy/p/13152830.html
Copyright © 2011-2022 走看看