2011-10-18 24 views

Respuesta

13

Un maniquí realmente no se utilizan para nada por sí mismo FakeItEasy, es simplemente una manera de crear instancias ficticias que se pueden utilizar en sus pruebas.

Por ejemplo, digamos que desea probar la clase siguiente:

public class Foo 
{ 
    public void Bar(DateTime someDate); 
} 

Ahora, en una de sus pruebas desea invocar el método del bar, pero el valor que se pasa a ella no es importante la prueba, en lugar de escribir:

foo.Bar(new DateTime(2000, 1, 1)); 

puede escribir:

foo.Bar(A.Dummy<DateTime>()); 

Esto indica que el valor realmente no es importante para la prueba, por lo que la razón para usarlo es comunicar mejor la intención.

+1

Esto todavía suena como Ignorado a mí. ¿Cuál es la diferencia en el uso? – cecilphillip

+0

Acabo de probar esto por mí mismo; el uso de A.Dummy <> en un A.CallTo(). MustHaveHappened() no da como resultado que se acepte ningún valor como A <>. Ignore does. Aparte de eso, no sé. –

+0

Realmente no puedo ver lo que no está claro. ¿Te das cuenta de que la clase Foo en el anterior es la clase que se prueba, no es un falso, ¿verdad? A.Dummy crea un valor ficticio, eso es todo. No se puede usar al configurar llamadas. –

4

@Patrik La respuesta de Hägne describe cómo los usuarios pueden usar un maniquí, pero hay otra parte de la historia. FakeItEasy hace uso de Dummies.

Cuando FakeItEasy tiene que crear una instancia de clase Fake (oa veces otra instancia de clase Dummy) invocando uno de los constructores de la clase, y el constructor toma argumentos, usará Dummies para los argumentos.

Lo invito a consultar el Dummies documentation.