簡體   English   中英

如何使用Mockito測試方法條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM