美文网首页
mokito 快速补充Java单元测试的技巧

mokito 快速补充Java单元测试的技巧

作者: 饱饱想要灵感 | 来源:发表于2023-03-05 18:08 被阅读0次

    1. 安装idea插件squaretest

    插件安装完成后, Alt + Ins 快捷键可生成测试代码类

    squaretest插件使用.png

    2. 多分支覆盖

    欲覆盖多分支可使用.thenReturn().thenReturn()...模式, 第n个thenReturn()就对应着第n次执行的返回值
    另外, 如果写了3个thenReturn(), 而实际执行了5次, 那么第3/4/5次都会返回第3个thenReturn()的值,我们可依此特性简写, 后面相同的返回无须重复

    注意: 谨慎确认变量是否正确设值, 因为变量都是拷贝的, 很容易写错, 特别是thenReturn()多的时候;
    例如:

    User user = new User();
    user.setCareer("学生");
    User user1 = new User();
    user1.setCareer("老师");
    User user2 = new User();
    user2.setCareer("教授");
    User user3 = new User();
    user2.setCareer("院士");
    User user4 = new User();
    user4.setCareer("工程师");
    User user5 = new User();
    user5.setCareer("农民工");
    

    如果不仔细, 很容易看漏user2重复设值了, 导致"教授"分支未覆盖

    3. 接口参数快速适配

    接口参数类型是多种多样的, 为快速适配, 我们应尽可能多地使用any*()
    注意点:

    1. 如果实际传入null值, 须用any()来适配, 不然无法返回预设结果
    2. 如果参数类型是Collection, 那么anyList()anySet()是不行的, 这样不会返回预设的结果集, 须使用anyCollection()
    3. 如果一个方法内的某个参数是any*(), 那么其它参数也必须是any*(); 例如findByNameAndAge("baobao", anyInt())是会报错的

    4. 公共参数和公共返回值

    • 公共参数可设为类变量,然后在@Before方法中初始化, 记得在测试方法下注释变量构成代码
    • 公共返回值除了执行"查找->替换"操作之外, 也可以写在@Before方法中, 然后在测试方法下注释mock代码

    相关文章

      网友评论

          本文标题:mokito 快速补充Java单元测试的技巧

          本文链接:https://www.haomeiwen.com/subject/rxcpldtx.html