2013-12-05 1 views
2

У меня есть следующий класс:Есть ли способ вызвать метод из вложенного класса jmockit?

public class SomeClass1 
{ 
    protected void method1() 
    { 
     String someString = NestedClass1.subMethod1("Hi"); 
    } 

    private static class NestedClass1 
    { 
     static String subMethod1(String param1) 
     { 
      return param1; 
     } 
    } 
} 

Я дразнить method1 из SomeClass1 в моем тесте, и мне нужно вызвать NestedClass1.subMethod1 в теле издевались method1, как в оригинале. Я пробовал утилиты из класса Deencapsulation (invoke, newInstance, newInnerInstace), но без желаемого результата.

new MockUp<SomeClass1>() 
{ 
    @Mock 
    void method1() 
    { 

    } 
}; 

Любая идея для решения этой проблемы? Заранее спасибо.

ответ

2

Вы должны использовать правильное имя класса (в виде строки) для статического внутреннего класса:

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

Обратите внимание на «$» знак