Recientemente comencé a usar la biblioteca AutoFixture (http://autofixture.codeplex.com/) para Pruebas unitarias y me gusta bastante.¿El propósito de crear tipos anónimos en AutoFixture para la clase bajo prueba?
Recibí este ejemplo de código del sitio web de AutoFixture CodePlex. Mi pregunta es en cuanto a número de línea 8.
1. [TestMethod]
2. public void IntroductoryTest()
3. {
4. // Fixture setup
5. Fixture fixture = new Fixture();
6.
7. int expectedNumber = fixture.CreateAnonymous<int>();
8. MyClass sut = fixture.CreateAnonymous<MyClass>();
9.
10. // Exercise system
11. int result = sut.Echo(expectedNumber);
12.
13. // Verify outcome
14. Assert.AreEqual<int>(expectedNumber, result, "Echo");
15. // Teardown
16. }
que no puedo entender, ¿por qué tenemos que crear un objeto anónimo de la clase que se está probando.
MyClass sut = fixture.CreateAnonymous<MyClass>();
La clase debería ser el objeto real IMO. Para un ejemplo ...
var sut = new MyClass();
Mi pregunta es, ¿cuál es el beneficio real de crear un objeto anónimo contra el cual evaluar?
1 Básicamente, se desacopla la prueba de la unidad de la firma constructora de la IVU, con lo que las pruebas más robusto cuando se enfrentan a refactorizaciones. –
¡Muy bien! Gracias, Ruben y Mark. – Spock