Question

quelqu'un ne sait l'équivalent de Moq It.IsAny<T> dans FakeItEasy?

Je veux faire affirmer qu'une méthode a été appelée avec une instance d'un type

v.Do(new Foo());

J'ai essayé:

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

mais accepte également v.Do();

Était-ce utile?

La solution

Vous avez raison dans le A<Foo>.Ignored (ou A<Foo>._) est l'équivalent de It.IsAny<Foo> dans Moq.

Il semble que vous avez touché un bug si ce que vous dites est correcte. Je vais là-dessus le plus rapidement possible.

EDIT J'ai créé le test d'intégration suivante pour reproduire le bug, mais le test passe donc je ne suis pas en mesure de le reproduire, pourriez-vous fournir un exemple de code?

[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);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top