次のインターフェースがあるとします。
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 リリースに割り当てられているようです (いつでも)。
私の質問は、上記がすぐに修正されないことを考えると、どうすればよいですか? オプションのパラメーターをモックするたびにデフォルト値を明示的に設定するか (これは、最初にパラメーターを指定するという点を無効にします)、ブール値を使用せずにオーバーロードを作成するか (私が行ったように) するためのオプションのみです。 C# 4) より前ですか?
または、この問題を克服するためのより賢い方法に出くわした人はいますか?