7
我試圖用一些私有類來測試一個類(是的,我知道這通常被認爲是可測試性差的實踐,但這個問題不是關於設計原則的)。我班會是這個樣子:PowerMock可以爲測試用例實例化一個內部類嗎?
public class EnclosingClass {
.
.
.
private class InnerClass implements InnerClassType {
public InnerClass(){ /* do stuff */}
public int InnerClassMethod();
}
}
InnerClassType
是一個公共接口
我試着做實例與powermock類:
Class clazz = Whitebox.getInnerClassType(EnclosingClass.class, "InnerClass");
Constructor constructor = Whitebox.getConstructor(clazz, null);
InnerClassType innerClass = (InnerClassType) constructor.newInstance(null);
,也:
Class clazz = Whitebox.getInnerClassType(EnclosingClass.class, "InnerClass");
InnerClassType innerClass = (InnerClassType) Whitebox.invokeConstructor(clazz);
但是,在兩次嘗試中,我得到一個ConstructorNotFoundException
是否有可能實例化這些內部類?如果是這樣,我哪裏錯了?
完美地工作 - 確保清理我的單元測試了一堆! – JoshC13
鑑於InnerClass是私人的,你如何獲得InnerClassType? –