JUnit3 私有方法的单元测试

 

私有方法的单元测试

测试类的私有方法时可以采取两种方式:

  1.修改方法的访问修饰符,将private修改为default或者public。(不推荐)。

  2.在测试类中使用反射调用目标类的私有方法。(推荐)。

 

程序实例

  一个计算加法的方法,是私有方法,在测试类中通过反射调用该方法进行测试.

  PS:使用JUnit 3。

  被测试的类:

复制代码
package com.mengdd.junit;

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

}
复制代码

  测试类:

复制代码
package com.mengdd.junit;

import java.lang.reflect.Method;

import junit.framework.Assert;
import junit.framework.TestCase;

public class CalculatorTest2 extends TestCase
{

    public void testAdd()
    {
        Calculator2 calculator2 = new Calculator2();
        // 得到class对象
        Class<Calculator2> clazz = Calculator2.class;

        // 得到方法
        try
        {
            Method method = clazz.getDeclaredMethod("add", new Class[] {
                    int.class, int.class });// 这里也可以用:Integer.TYPE

            method.setAccessible(true);// 抑制访问修饰符,使得私有方法变为可以访问的

            Object result = method.invoke(calculator2, new Object[] { 2, 3 });

            Assert.assertEquals(5, result);

        }
        catch (Exception e)
        {
            e.printStackTrace();

            Assert.fail();
        }
    }
}
复制代码

 

参考资料

  圣思园张龙老师视频。

posted @   圣骑士wind  阅读(912)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示