我只想寫這段代碼單元測試:我應該如何測試超級(xy)呼叫?
public class MyClass extends SomeClassICanNotChange {
public MyClass(SomeObjectThatTheSuperClassNeed param) {
super(param);
}
@Override
protected boolean thisMethodIWantToTest() {
return true; // Some magic here
}
一些限制:
- 我不能改變超
SomeClassICanNotChange
。 - 有必要呼籲
super(param)
- 的超
SomeClassICanNotChange
做一些東西與param
,所以才Mockito.mock(SomeObjectThatTheSuperClassNeed.class)
將無法正常工作(NPE)。
我想測試方法thisMethodIWantToTest()
。我唯一的想法是嘲笑超類需要的所有方法。有點像這樣:Mockito.when(myMock.xy()).thenReturn(..)
。但這似乎不是很聰明。
有沒有人知道更好的方式來寫這個UnitTest?
非常感謝您
如果你想測試超類,你總是可以創建一個完整的單獨的測試套件僅用於測試該類,與您在派生類中擴展它的任何代碼分開。通常只爲與您集成的第三方庫編寫測試,並且還可以幫助您確認對該代碼的使用情況。 –
感謝您的快速回復。我不想測試超類。在我的單元測試中,我只想測試'thisMethodIWantToTest()'方法。 但感謝提示測試第三方庫。 – user6479676