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(); } } }
参考资料
圣思园张龙老师视频。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了