簡體   English   中英

為什么thenCallRealMethod()在這里丟失參數?

[英]Why does thenCallRealMethod() lose the arguments here?

我有以下代碼:

when(mockedOperation.getResult(anyDouble(), anyDouble())).thenCallRealMethod();
when(mockedOperation.division(anyDouble(), not(eq(0d)))).thenCallRealMethod();

Operation類似於Command模式,它封裝了一些具體的動作,在這種情況下,是簡化的除法運算。 結果檢索不是直接發生,而是通過合同方法getResult(arg1, arg2) 所以,我打電話

  mockedOperation.division(10d, 3d);

但是(從我具體的Operation實施中的調試信息中)我可以看到, division()的值不是103而是(0, 0)

據我了解,該參數是之間的空地方thenCallRealMethod()通過getResult()並調用真正的 division()之后。

這種行為的原因是什么?如果我真的需要,應該如何正確實現部分模擬?

UPD。 也許我應該嘗試換一種說法,例如,簡單地如何創建callRealMethod ,以使參數正確傳遞到端點?

好,問題現在解決了。 事實證明,我剛剛在Mockito中遇到了另一個未記錄的功能/錯誤(或者只是我尚未找到文檔的功能)。 問題在於,在我的@Before我還模擬了該操作,並且當它出現時,當重新定義模擬時,發生了一些不可思議的事情,其結果如我已經描述的那樣-參數以某種方式丟失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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