質問

誰かがMOQに相当することを知っていますか It.IsAny<T> FakeIteasyで?

タイプのインスタンスでメソッドが呼び出されたと主張したい

v.Do(new Foo());

私は試した:

A.CallTo(() => v.Do(A<Foo>.Ignored)).MustHaveHappened();

しかし、これも受け入れます v.Do();

役に立ちましたか?

解決

あなたは正しいです A<Foo>.Ignored (また A<Foo>._)と同等です It.IsAny<Foo> Moqで。

あなたが言うことが実際に正しい場合、あなたはバグにヒットしたようです。できるだけ早く乗ります。

編集バグを再現するために次の統合テストを作成しましたが、テストは合格しますので、それを再現することができません、コードサンプルを提供できますか?

[Test]
public void Should_fail_assertion_when_overload_with_no_parameters_has_been_called_but_the_assertion_is_for_overload_with_parameters_but_ignoring_them()
{
    // Arrange
    var fake = A.Fake<ITypeWithOverloadedMethods>();

    // Act
    fake.Foo();

    // Assert
    Assert.Throws<ExpectationException>(() => A.CallTo(() => fake.Foo(A<int>._)).MustHaveHappened());
}

public interface ITypeWithOverloadedMethods
{
    void Foo();
    void Foo(int argument);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top