Я недавно начал использовать библиотеку AutoFixture (http://autofixture.codeplex.com/) для модульного тестирования, и мне это очень нравится.
Я получил этот пример кода с веб-сайта AutoFixture CodePlex. У меня вопрос по поводу строки № 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. }
Не могу понять, зачем нам нужно создавать анонимный объект тестируемого класса.
MyClass sut = fixture.CreateAnonymous<MyClass>();
Класс должен быть реальным объектом IMO. Для примера ..
var sut = new MyClass();
Мой вопрос: в чем реальная выгода от создания анонимного объекта для проверки?