2 つのブール値パラメーターを受け取る関数をスタブしたいと考えています。1 つ目は必須で、2 つ目はオプションです。最初に Arg.Is.Anything を送信しようとして、2 番目の情報がない場合、次のエラーが表示されます。
System.InvalidOperationException : Arg を使用する場合、すべての引数は Arg.Is、Arg.Text、Arg.List、Arg.Ref、または Arg.Out を使用して定義する必要があります。2 つの引数が必要ですが、1 つが定義されています。
スタブするクラスのサンプルを次に示します。
public interface IOptionalParameterTester
{
bool IsValid(bool mustCheck, bool checkInDatabase = true);
}
public class OptionalParameterTester : IOptionalParameterTester
{
public bool IsValid(bool mustCheck, bool checkInDatabase = true)
{
if (checkInDatabase)
return true;
else
return false;
}
}
そして、ここにテストのサンプルがあります:
[Test]
public void ValidateProducerTest()
{
IOptionalParameterTester optionalParameter = MockRepository.GenerateStub<IOptionalParameterTester>();
optionalParameter.Stub(x => x.IsValid(Arg<bool>.Is.Anything)).Return(true);
}
この場合、エラーなしでテストに合格するには、最初の (Arg.Is.Anything) と同じ情報、または true や false などの特定のブール値を定義する必要があります。
最初のパラメーターに Arg.Is.Anything 以外を設定すると、エラーは発生しません。
バグですか?
オプションのパラメータごとに値を定義する必要がないように、RhinoMock でオプションを設定できますか?
セットアップがない場合、このケースを処理するためのより良い方法はありますか (ベスト プラクティス、パターンなど)?
ありがとうございました。