次のインターフェースがあるとします。
public interface IFoo
{
bool Foo(string a, bool b = false);
}
Moqを使用してそれを模擬しようとしています:
var mock = new Mock<IFoo>();
mock.Setup(mock => mock.Foo(It.IsAny<string>())).Returns(false);
コンパイル時に次のエラーが発生します。
式ツリーには、オプションの引数を使用する呼び出しまたは呼び出しを含めることはできません
上記の問題はMoqの問題リストの拡張として発生したことがわかり、4.5リリースに割り当てられているようです(それがいつでも)。
私の質問は、上記の問題がすぐに修正されない場合、どうすればよいですか?私のオプションは、それをモックするたびにオプションのパラメーターのデフォルト値を明示的に設定する(最初の場所で1を指定するポイントを無効にする)か、またはブール値なしでオーバーロードを作成する(私がしたように)だけですか? C#4より前)?
または、誰かがこの問題を克服するためのより賢い方法に出くわしましたか?