我是Mockito和PowerMock的新手,並且在獲取這個時遇到了麻煩。這是相當多的情況下,我有:如何模擬和測試這個內在的靜態類
class A {
static class B {
public class B(Object1 o1, Object2 o2) {
setInSuperClass(o1); // this is private method...
doSomethingWithInnerClass (new Object3() {
@Override
public void retreat() {
someVar = new Object5(o2); // someVar is from superclass and is private, I know I can get it with PowerMock
}
@Override
public boolean doSomething(){
return true;
}
})
}
}
}
我想這會爲第一種方法做的工作....也許我還可以驗證某些對象的超集和IS NOT NULL任何更多,而會好嗎?
@Mock
Object1 o1;
@Mock
Object2 o2;
public void test() {
B b = new B(o1, o2);
PowerMockito.verifyPrivate(b).invoke("setInSuperClass", 1 , o1);
}
但如何最好地測試doSomethingWithInnerClass?我的意思是,我知道我可以驗證它被稱爲....但這個匿名的類論證我想測試。 我欣賞意見, 謝謝
你的類的代碼不能編譯。 –
@JBNizet,我現在無法訪問代碼,是的,可能會有一些錯誤,但這是對問題的一般描述 – Julia
由於您的類I的所有者會將靜態內部移動到子包中的另一個類。我也沒有看到測試私有方法被調用的價值。 –