как это. Isyny <T>в FakeItEasy? - PullRequest
       83

как это. Isyny <T>в FakeItEasy?

5 голосов
/ 10 декабря 2010

Кто-нибудь знает эквивалент Moq It.IsAny<T> в FakeItEasy?

Я хочу сделать утверждение, что метод был вызван с экземпляром типа

v.Do(new Foo());

Я пытался:

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

но это также допускает v.Do();

1 Ответ

10 голосов
/ 12 декабря 2010

Вы правы, в A<Foo>.Ignored (или A<Foo>._) эквивалентен 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);
}
...