我有以下类(class):
public class SomeClass1
{
protected void method1()
{
String someString = NestedClass1.subMethod1("Hi");
}
private static class NestedClass1
{
static String subMethod1(String param1)
{
return param1;
}
}
}
我在测试中模拟了 SomeClass1 的 method1,并且需要像原始方法一样调用模拟 method1 主体中的 NestedClass1.subMethod1 。我已经尝试了 Deencapsulation 类中的实用方法(invoke、newInstance、newInnerInstace),但没有得到预期的结果。
new MockUp<SomeClass1>()
{
@Mock
void method1()
{
}
};
有办法解决这个问题吗?提前致谢。
最佳答案
您必须为静态内部类使用正确的类名(如 String):
Deencapsulation.invoke("org.yourpackage.SomeClass1$NestedClass1", "subMethod1", "Hello");
注意“$”符号
关于java - 有没有办法通过jmockit从嵌套类调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20410155/