我最近开始使用 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();
我的问题是,创建一个匿名对象来测试的真正好处是什么?