2010-12-10 33 views
5

Quelqu'un connaît-il l'équivalent de Moq It.IsAny<T> dans FakeItEasy?comment It.IsAny <T> dans FakeItEasy?

Je veux faire valoir 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();

Répondre

10

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

Il semble que vous ayez atteint un bug si ce que vous dites est correct. Je vais y aller le plus vite 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); 
}