我嘲笑了一項服務。Service 有一個方法“action”,它接受一個 MyCustomObject 型別的物件并回傳一個 Future of Each 。所以要嘲笑:
when(myService.action(any[MyCustomObject]())).thenReturn(any[Future[Any]]())
我在概念上看不到任何問題。我告訴 mockito 來模擬方法 action,這樣無論何時用 MyCustomObject 型別的任何物件呼叫它,然后讓它回傳一個 Future of Any 因為我不關心 Future 中的值。
但它給了我錯誤:
When using matchers, all arguments have to be provided by matchers.
我的兩個模擬值本質上都是通用的,那么這個錯誤的原因是什么?
uj5u.com熱心網友回復:
使用 Mockito 時,您不能在: 中傳遞匹配器thenReturn:模擬的重點是定義任意回傳值。
從概念上講,Mockito 可能會為簡單型別生成一些隨機資料,但是您如何期望 Mockito 為它根本不知道的型別生成資料并且可能只接受某些特定值?
TL;DR:您必須提供一個回傳值:
when(myService.action(any[MyCustomObject]()))
.thenReturn(Future.succesfull(Right(something)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/393587.html
