試圖使用EasyMock來測試被保護的方法是否被調用,不知道這是否是最好的方法來做到這一點...但是,如何知道didIgetCalled()實際上是調用callMe()時調用?EasyMock和測試受保護的方法
public Class testMe(){
public int callMe(){
if(true){
didIgetCalled();
}
return 1;
}
protected int didIgetCalled(){
return 2;
}
}
我相信你能不能做到這一點,你只能檢查是否公開方法被調用。在進行單元測試時,儘量從「黑盒」測試的角度考慮一下,不要過多擔心內部發生的情況,只關心輸入和輸出以及與其他對象的交互。 – ggreiner 2012-02-03 01:12:43
好吧...有點知道,但想知道是否有方法來測試某個方法是否被父類方法調用,或者不是從父方法中調用,會是一件好事。 – Phoenix 2012-02-03 16:52:27
是的,通常這不足以驗證確切地調用了哪些方法,而只是在調用之後的對象的狀態是您期望的狀態時才足夠。因此,在您的示例中,如果您要驗證callMe()的返回值,那麼內部涉及的方法與外部無關。 – centic 2012-02-03 18:41:58