有没有办法通过jmockit从嵌套类调用方法?

时间:2013-12-05 20:36:21

标签: java mocking jmockit

我有以下课程:

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()
     {

     }
 };

有什么想法解决这个问题吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

您必须为静态内部类使用正确的类名(作为String):

Deencapsulation.invoke("org.yourpackage.SomeClass1$NestedClass1", "subMethod1", "Hello");

注意“$”符号