1

メソッドと引数が既に として表されている場合、FakeItEasy でメソッド呼び出しをインターセプトする別の方法はありExpression<Action<T>>ますか?

通常、私は単に使用します

IFoo foo = A.Fake<IFoo>();
A.CallTo(() => foo.SomeMethod("SomeString", A<Exception>.Ignored)).Invokes( ... );

しかし、私の現在の状況では、偽物IFooと偽物がありExpression<Action<IFoo>>、2つを一緒に結婚させようとしています.

これは実際に FakeIEasy 用に書き直した既存の Moq コードですが、それが可能かどうかはわかりません。これの Moq バージョンは

private void ExampleMoqMethod(Expression<Action<IFoo>> setupAction)
{
     Mock<IFoo> Mock = new Mock<IFoo>();
     Mock.Setup(setupAction).Callback( ... );
}

明らかな(以下)を試しましたが、「指定されたオブジェクトは偽のオブジェクトとして認識されていません」というエラーが発生しました(偽のオブジェクトがまったく参照されていないためと思われます!)

private void ExampleFIEMethod(Expression<Action<IFoo>> callSpecification)
{
     IFoo foo = A.Fake<IFoo>();
     A.CallTo(callSpecification).Invokes( ... );
}

IFakeObjectCallRule実装して使用することでこれが可能であると推測する危険がありますFake.GetFakeManager(foo).AddRuleFirst(customRule)が、これを行うより簡単な方法があるかどうか疑問に思っていましたか?

4

0 に答える 0