2015-12-01 3 views
15

パラメータなし3.モックオーバーロードされたメソッド単純に使用するScalamock私は、</p> <pre><code>public boolean isInfoEnabled(Marker marker); public boolean isInfoEnabled(); </code></pre> <p>がマーカーをとる関数をモックするにscalamockの例では引数を取りませんオーバーロードされたメソッドを1にすることができますモックする方法を説明します任意のドキュメントを見つけることができませんでした

(loggerMock.isInfoEnabled(_: Marker)).expects(*).returning(true) 

しかし、パラメータを取らない他の方法を模擬する方法はありますか?どんな助けもありがとうございます。

答えて

19

私はついにそれを考え出し:

(loggerMock.isInfoEnabled:() => Boolean).expects().returning(true) 

をこのissueは私をたくさん助けました。このようなことを書いても結構です。

+3

これは間違いなく文書化されるべきです。私は約1時間それを探して過ごした。私はドキュメントのプルリクエストをドキュメントに提出することを検討しています。 – EmptyFlash

+0

まだ受け入れられましたか? – sam

+0

大きな助け。ラッキー場合は、Googleで見つけるのはかなり簡単でした。 –

2

私はScala 2.12以降では、この解決策は廃止されていることを認識するまで、このアプローチを使用していました。

あなたは、私は、このソリューションが分かったいくつかの調査した

Eta-expansion of zero-argument method values is deprecated. 

のような警告が表示されます:Scalaの2.12で

(loggerMock.isInfoEnabled _).expects().returning(true) 

または

import scala.language.postfixOps 
loggerMock.isInfoEnabled _ expects() returning true 
+0

これは2.12+でコンパイルします 注:IntelliJは、偽のコンパイルエラーをインラインで発生させます。 – pgn

3

これも作品を(無検査Intellijの場合):

//noinspection ConvertibleToMethodValue 
(tailer.run _:() => Unit) expects() 
+0

ty。これは私のために働く唯一の方法です。 – acumartini

関連する問題

 関連する問題