Pregunta

¿Alguien sabe el equivalente de Moq It.IsAny<T> en FakeItEasy?

Quiero hacer afirman que un método fue llamado con una instancia de un tipo

v.Do(new Foo());

Me trató:?

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

pero esto también acepta v.Do();

¿Fue útil?

Solución

Tienes razón en el A<Foo>.Ignored (o A<Foo>._) es el equivalente de It.IsAny<Foo> en Moq.

Parece que has llegado a un error si lo que dice es realmente correcto. Voy a conseguir en él tan pronto como sea posible.

Editar He creado la siguiente prueba de integración que se reproduce el error, pero se supera la prueba, así que no soy capaz de reproducirla, ¿podría proporcionar un ejemplo de código?

[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);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top