我实际上正在尝试测试一个需要数据库连接的方法(我目前无法进行(,所以我想测试忽略数据库连接的方法。
@Test
public void Test(){
ExampleClass ex = new ExampleClass();
ex.methodA();
}
我的方法正在调用内部类,该类正在调用打破我的测试的私人方法。我实际上无法称呼已测试类的私人方法,因为不可见。
public class ExampleClass{
public methodA(){
.......
return new innerClass();
}
private class innerClas{
public methodB(){
..........
..........
Object a = send(....); //This is my DB Connections that crashes.
}
private send(....){
..........
.........
}
}
}
我需要忽略测试类的发送方法,因为有DB连接。如果我可以固执,忽略它就足够了。
在ExampleClass#methodA()
中不创建innerClass
的对象。而是通过构造函数或方法将此对象注入ExampleClass
。
现在,从测试类使用Mockito或等效的测试类模拟innerClass
,并从目标方法中返回您要避免调用真实内容的模拟结果。
通过私人方法模拟使用PoweMock,添加以下注释:
@RunWith(PowerMockRunner.class)
@PrepareForTest(ExampleClass.class)
public class MyTest{
}