概述
关于junit测试的延伸,这里有类概念级别的测试,继承类的测试,接口的测试,抽象类的测试,关于这些类级别的测试,这里我就不做多的赘述了。
关于上面的几个测试就是说,我们不应该单纯的去测试类中的一些方法,而且要测试类的状态,也就是那些属性状态。我个人觉得没太大必要,实际编码测试中我们直接测试方法的正确性就够了,一个类的状态是通过方法来改变的,
所以正确的初始化后基本不会有太大问题。这里我要整理的是一个类中私有方法的测试。
很多人说类的私有方法不用测试,理由是类私有方法只允许被本类访问,而其他类无权调用。事实上并非如此。我们在写一个类的时候经常会封装一些私有方法,然后只能在自己的类中使用。但是用private修饰的私有方法在外部类不能
被访问,那么假如我们想测试,那怎么办呢? 简单,利用反射绕开Java的语言访问检查。
这里我举个例子:
package org.linkinpark.junit.testjunit;
/**
* @创建作者: LinkinPark
* @创建时间: 2016年2月5日
* @功能描述: 写一个测试源码,然后里面封装一个私有方法
*/
public class Linkin
{
private String test(String str)
{
return str + "。。。";
}
}
OK,现在我们来写上面这个私有方法的测试类:
package org.linkinpark.junit.testjunit;
import java.lang.reflect.Method;
import org.junit.Assert;
import org.junit.Test;
public class TestTest
{
@Test
public void test() throws Exception
{
Linkin test = new Linkin();
Class<Linkin> clazz = Linkin.class;
Method declaredMethod = clazz.getDeclaredMethod("test", String.class);
declaredMethod.setAccessible(true);
Object invoke = declaredMethod.invoke(test, "LinkinPark");
declaredMethod.setAccessible(false);
Assert.assertEquals("LinkinPark。。。", invoke);
}
}
最后
以上就是甜美曲奇为你收集整理的junit测试延伸--私有方法测试的全部内容,希望文章能够帮你解决junit测试延伸--私有方法测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复