0
public abstract class A{
public int methodInA(String a){
return 0;
}
}
public class B extends A{
String a = "ANYTHING";
public void main(){
int b = super.methodInA(a);
}
}
此代碼僅僅是一個例子。我想測試B
並希望從B
嘲笑方法methodINA
帶參數。我可以用EasyMock做到這一點,如果是這樣的話?如何嘲笑從父類的方法與EasyMock的
在我的情況下,A是許多類的父。我想嘲笑A中的方法,所以我可以專注於B,並且不需要每次爲其子類編寫單元測試時都模擬A方法中的行爲。在我的情況下,使用子類可能仍然需要大量的重複工作。你有其他解決方案嗎? – Jane
的'B'並不需要在試驗方法,甚至測試類,但是你需要專注'B'某處實現你想要的專業化。當你用嘲弄的API,你實際上是創建嘲笑接口/類的一個新的實現 - 在這個使用動態代理或一類的字節碼操作做了一個接口的情況下 - 即根據您所設定的預期行爲。如果你沒有設定期望,模擬API不會調用類上的方法。這裏 –
的問題聽起來更像是你的設計有問題 - 而不是繼承考慮使用,你有一個類,提供了'methodInA'和該類的實例注入B'的'實例組成。這樣,你只需簡單地模擬提供'methodInA'的類並在創建'B'時注入模擬。 –