2010-12-10 3 views
5

FakeItEasyでMoq It.IsAny<T>と同等のことを知っている人はいますか?どのようにIt.IsAny <T> FakeItEasyに?

私はこの方法は、私が試したタイプ

v.Do(new Foo()); 

のインスタンスと呼ばれていたことを主張したいと思う

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

が、これもv.Do()受け付けます。

答えて

10

あなたは右のA<Foo>.Ignored(またはA<Foo>._)はMoqのIt.IsAny<Foo>に相当します。

あなたの言うことが実際に正しい場合は、バグに遭ったようです。私はできるだけ早くそれに乗ります。

EDIT 私はバグを再現するために、次の統合テストを作成したが、テストはので、私はそれを再現することはできないんだけど、あなたはコードサンプルを提供することができ渡しますか?

[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); 
} 
関連する問題