如何在每个Test Case执行前后做处理?这应该是每个使用过单元测试框架的同学都知道的。多数的框架都是通过打标签的方式来提供类似功能的,例如:NUnit的[Setup]和[TearDown] , MSTest的[TestInitialize]和[TestCleanup]。而xUnit.Net提供了一种更加优雅的处理方式,就是利用构造函数以及IDisposable.Dispose方法来实现对应的功能。懂得一些面向对象的小伙伴也许会发现,这样的改进主要是为了支持依赖注入(而不是简单的省去了标签而已)。这也为我后续的文章中要讲到的许多功能的注入实现提供了可能。讲了这么多理论,先上一段Code: