2
訪問嵌套的私有靜態類
我有以下Java中的公共類,它看起來像:在Java中
public class MyClass
{
private static class MyNestedClass<T> extends SomeOtherClass
{
}
}
我寫一個測試,我需要創建使用PowerMockito爲MyNestedClass類模擬對象,但我不能夠訪問該類,因爲它是私人的。有沒有一種方法可以訪問MyNestedClass?
我試過如下:
MyClass.MyNestedClass myNestedClass = new MyClass.MyNestedClass()
和
MyClass testNoteActivity = Mockito.spy(MyClass.class);
testNoteActivity.MyNestedClass myNestedClass = new testNoteActivity.MyNestedClass()
兩人都沒有爲我工作。
沒有其他辦法嗎?根據定義,這個類是私有的,你將不得不將範圍改爲包來測試它。也許你可以窺探一個使用這個類實例的方法,如果你可以使用SomeOtherClass,它不是私有的。 – Beri
如果測試代碼需要訪問該類,那麼它可能不應該是私有(靜態)類。 Powermock通常是最後的手段,如果您能夠控制代碼庫,我建議您考慮重構代碼或重新考慮您正在測試的內容。 –