4

FakeItEasy フレームワークを使用して Func が呼び出されたかどうかを確認する方法は?

例:

Func<bool> myFunc = () => true;

// Unfortunately this fails:
A.CallTo(myFunc.Invoke()).MustHaveHappened();
4

2 に答える 2

1

私はあなたがそれを行うことができるとは思わない。このオブジェクトをモックしてメソッドへの呼び出しをインターセプトする必要があるため、インターフェイスのプロパティ/メソッドまたは抽象クラスの仮想メソッドが呼び出されたかどうかのみを判断できます。ランダムなデリゲートを呼び出して、それが呼び出されたことを確認することはできません。

たとえば、次の場合:

interface ISomething
{
    void SomeMethod();
}

次に、次のことができます。

var fake = A.Fake<IContactSubmitter>();

// code which passes fake as dependency to something so SomeMethod will be caled...

A.CallTo(() => fake.SomeMethod().MustHaveHappened(Repeated.Once.Exactly);
于 2013-12-05T12:10:46.243 に答える