public String processName() throws Exception {
String name = dbManager.getName(); // getname
String connection = dbManager.getConnection();
String name2 = dbManager.getName();
Mydata mydata = new Mydata();
String getData = mydata.getGetData();
List<String> list = dbManager.getList();
return getData.toLowerCase();
}
private class Mydata {
String getData = "test";
public String getGetData() {
return getData;
}
public void setGetData(String getData) {
this.getData = getData;
}
}
答案 0 :(得分:0)
一般情况下,你不应该使用private
类并避免为它们编写测试,因为它们应该是外部世界的black-boxes
。
但是如果你正在使用它并想要模拟它,那么你可以使用JMockit来实现它:
Object ins = Deencapsulation.newInnerInstance("Mydata", outerClass.class, (Object[]) null);
我使用过null
,因为你没有在内部私有类中定义任何构造函数。
以下是您感兴趣的文档:
Object mockit.Deencapsulation.newInnerInstance(String innerClassSimpleName,Object outerClassInstance,Object ... nonNullArgs)
与newInstance(String,Class [],Object)相同,但是 实例化其他类的内部不可访问类,以及 已知所有其他(如果有)初始化参数 非空。
<强>参数:强>
innerClassSimpleName: 内部类简单名称,即&#34; $&#34;之后的部分。全名字符
outerClassInstance: 内部类实例将属于的外部类实例
nonNullArgs: 调用的零个或多个非空参数值;如果需要传递null值,则为Class对象 必须传递相应的参数类型而不是类型 返回的实例应该是可分配的
返回:新创建的指定内部类的实例,已初始化&gt;使用给定的参数
抛出: IllegalArgumentException - 如果为参数提供了空引用