我有以下课程:
public class SomeClass1
{
protected void method1()
{
String someString = NestedClass1.subMethod1("Hi");
}
private static class NestedClass1
{
static String subMethod1(String param1)
{
return param1;
}
}
}
我在我的测试中模拟SomeClass1的method1,我需要像在原始中一样调用mocked method1体中的NestedClass1.subMethod1。我已经尝试过Deencapsulation类中的实用程序方法(invoke,newInstance,newInnerInstace),但是没有预期的结果。
new MockUp<SomeClass1>()
{
@Mock
void method1()
{
}
};
有什么想法解决这个问题吗?提前谢谢。
答案 0 :(得分:2)
您必须为静态内部类使用正确的类名(作为String):
Deencapsulation.invoke("org.yourpackage.SomeClass1$NestedClass1", "subMethod1", "Hello");
注意“$”符号