Frage

Hat jemand das Äquivalent von Moq It.IsAny<T> in FakeItEasy wissen?

Ich mag behaupten zu tun, dass ein Verfahren mit einer Instanz einer Art genannt wurde

v.Do(new Foo());

Ich habe versucht:

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

aber akzeptiert auch v.Do();

War es hilfreich?

Lösung

Du hast Recht im A<Foo>.Ignored (oder A<Foo>._) ist das Äquivalent von It.IsAny<Foo> in Moq.

Es scheint, dass Sie einen Fehler getroffen haben, wenn, was sagen Sie eigentlich richtig ist. Ich werde so schnell wie möglich auf es.

Bearbeiten Ich habe den folgenden Integrationstest, um den Fehler reproduziert, aber der Test bestanden wird, damit ich nicht in der Lage bin, es zu reproduzieren, könnten Sie ein Codebeispiel zur Verfügung stellen?

[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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top