2つのブールパラメータを受け取る関数をスタブする必要があります。最初は必須で2番目はオプションです。私がArg.Isを送信しようとすると、2番目の情報がなくても最初のものに何かがあると、私はエラーを受け取ります:RhinoMockのスタブ付きオプションパラメータ
System.InvalidOperationException: 、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)、または真または偽のような特定のブール値と同じ情報を定義する必要があります。
最初のパラメータにArg.Is.Anything以外を設定すると、エラーは発生しません。
バグですか?
各オプションパラメータの値を定義する必要がないように、RhinoMockでオプションを設定できますか?
セットアップがない場合は、このケース(ベストプラクティス、パターンなど)を処理するためのより良い方法がありますか?
ありがとうございます。
情報についてhttp://stackoverflow.com/questions/6669623/c-sharp-mocking-framework-that-supports-optional-parameters-and-net-4-0 –
ありがとう。私はMoqが大好きですが、現在作業しているプロジェクトはRhinoMockです。 – Samuel