美文网首页
代码单元测试四

代码单元测试四

作者: supremecsp | 来源:发表于2022-04-20 17:54 被阅读0次

如何对private方法写单元测试?

有时public方法返回值是void,对该方法写测试无法进行断言。可以对方法内的部分逻辑进行封装再测试。

1,可以通过反射测试private方法

    @Test
    public void test() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
        App app = new App();
        Method privateMethod = app.getClass().getDeclaredMethod("callPrivateMethod");
        privateMethod.setAccessible(true);
        Assert.assertEquals("Private method is called.", privateMethod.invoke(app));
    }

2,加上@VisibleForTesting注解,将方法改为protected;(个人用这个)

如何mock返回值为void的方法?

在Mockito中,我们可以使用不同的方法来调用实数方法或模拟void方法。 我们可以根据要求使用其中一个选项
doNothing() :完全忽略对void方法的调用,这是默认行为
doAnswer() :在调用void方法时执行一些运行时或复杂的操作
doThrow() :调用模拟的void方法时引发异常
doCallRealMethod() :不要模拟并调用真实方法

1,doNothing()
如果我们只想完全忽略void方法调用,则可以使用doNothing()。
例:用于下发信息 doNothing().when(devGroupSyncProducer).sendMessage(any());
2,doAnswer()可以对参数进行一些特殊处理
例:入参传入一个集合,方法对集合进行过滤,返回void

  doAnswer((InvocationOnMock invocation)->{
            List dids = (List) invocation.getArguments()[0];
            dids.remove(dids.size()-1);
            return null;
        }).when(familyServer).filterSubDidOtherFamily(any());

参考:使用Mockito的Mock Void方法如何单元测试Java的private方法

相关文章

  • 代码单元测试四

    如何对private方法写单元测试? 有时public方法返回值是void,对该方法写测试无法进行断言。可以对方法...

  • 需“软件质量工作总结-2”

    1、初步完成 1)独立输出异常类单元测试代码 2)单元测试代码总输出异常的行号 3)异常类单元测试代码永久抛出异常

  • 理解单元测试

    单元测试 在Java中单元测试指代码单元的测试用例,代码单元指类中的方法。单元测试是用以保证代码的逻辑正确性,测试...

  • 关于单元测试

    什么是单元测试: 单元测试从本质上讲也是代码,与普通代码的区别是,它是验证代码正...

  • 打印方法运行时间

    方法一 方法二 方法三 方法四添加单元测试,在单元测试方法中添加代码,按Command+U运行测试,控制台会打印出...

  • 单元测试

    1、什么是单元测试 单元测试是一种通过代码检测代码的开发手段,常用于敏捷开发和测试驱动开发; 单元测试主要针对业务...

  • Junit单元测试入门

    什么叫单元测试 单元测试可以提高代码质量与开发效率。 main单元测试与junit单元测试的比较 传统的main方...

  • 尽量避免bug的一些方法

    与产品经理和有经验的测试多沟通(需求阶段,代码设计阶段) 代码开发阶段-- 必须写单元测试并且同步维护单元测试代码...

  • 测试先行

    单元测试就是确保你的代码执行的结果是你期望的结果。使用单元测试有助于提高代码质量,提高我们的开发效率。单元测试需要...

  • 三种工作流CI/CT/CD

    开发分支推送CI 推送配置 单元测试 代码扫描 构建推送 分支环境部署 添加Tag时CT 单元测试 代码扫描 构建...

网友评论

      本文标题:代码单元测试四

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