2010-12-10 25 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>

如果您所說的話實際上是正確的,那麼您似乎已經遇到了錯誤。我會盡快完成。

編輯 我創建了下面的集成測試,以再現的錯誤,但測試通過了,所以我不能夠重現它,你能提供一個代碼示例?

[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); 
}