[英]How to test method condition using mockito
Mockito用於模擬對象行為,但是如果方法調用不是對象調用,如何檢查條件是否匹配。
例如
boolean sameType= bloodType != null && bloodType.type.equals(patient.type);
if (sameType && transfusion(availability)) {
return true;
}
if (sameType && availability <= 0) {
reject.rejectBlood(info);
return false;
}
我該如何涵蓋那些使用模仿的人?
我假設您是指方法調用
transfusion(availability)
假設它也是一個私有方法,則不能使用Mockito模擬私有方法,但是使用PowerMock可以。
無論如何,除非由於任何原因而無法重構的是遺留代碼,否則最好避免模擬私有方法調用,因為這會導致測試脆弱且難以理解。
上面的代碼塊並不是孤立存在的-它是方法或方法的一部分。 該方法就是您要測試的方法。 而且此方法中沒有什么不是對象(或者我想是布爾值)。
因此,請使用Mockito模擬您的bloodType
對象(或者,如果它是一個簡單的對象,請自己制作一個真實的對象),並確保不同的血液類型在您的方法中產生預期的結果。 還要模擬reject
對象,以便可以確保使用正確的info
對象調用rejectBlood()
。
一旦模擬了這些事情,就可以調用您的方法並驗證其返回正確的值,並且已對模擬進行了適當的調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.