5

有人知道It.IsAny<T>FakeItEasy 中的起订量吗?

我想断言一个方法是用一个类型的实例调用的

v.Do(new Foo());

我试过:

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

但这也接受v.Do()

4

1 回答 1

11

你是对的A<Foo>.Ignored(或A<Foo>._)相当于起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);
}
于 2010-12-11T22:05:08.717 回答