欢迎来到淼淼之森的个人小站。  交流请加我微信好友: studyjava。  也欢迎关注同名公众号:Java学习之道

如何写private方法的单元测试 置顶!

  |   0 评论   |   0 浏览

如何写private方法的单元测试

由于 Java 私有方法不允许在类的外部进行访问,当我们在写 junit 测试的时候,就无法像测试其他方法一样通过对象调用的方式对 private 方法进行单独测试,下面分享测试私有方法的方式:

首先我们定义一个类的私有方法 add() :

public class CalculatorUtil {
    private int add(int a, int b) {
        return a + b;
    }
}

使用 PowerMock 测试私有方法

Java 单元测试中比较流行的 Mock 测试框架有jMock、EasyMock、Mockito等,但是这些 Mock 工具都不能 Mock static、final、private 方法等,而PowerMock能够做到,而且还支持对私有方法进行测试

引入PowerMock依赖

使用前需要先引入PowerMock依赖

<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-api-mockito2</artifactId>
    <version>2.0.4</version>
    <scope>test</scope>
</dependency>

调用方法代码示例

public class CalculatorUtilTest {

    private CalculatorUtil calculatorUtil;

    @Before
    public void setUp() {
        calculatorUtil = new CalculatorUtil();
    }

    @Test
    public void testAdd() throws Exception {
        int result = Whitebox.invokeMethod(calculatorUtil, "add", 1, 2);
        assertThat(result, is(equalTo(3)));
    }
}

Whitebox.invokeMethod()前两个参数分别为需要调用的类的实例、静态方法的名称,后面的不定长参数为调用目标方法的参数。可见,使用PowerMock测试静态方法相比于反射的方式,代码更加简洁,可读性也更好


标题:如何写private方法的单元测试
作者:jerrycookie
地址:https://www.mmzsblog.cn/articles/2023/11/29/1701252787232.html

如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议

本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。
• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!

个人微信公众号 ↓↓↓                 

微信搜一搜 Java 学习之道