(2)系统方法
单元测试运行时,用户可能需要统一初始一些变量或者测试结束统一释放占用资源,而不必在每个测试方法中初始化和资源回收。vs单元测试中提供了这样的属性。
1.ClassInitialize
如果方法标识了这个属性。则这个方法在整个测试class运行开始时候运行。可以在这个方法中添加所有测试方法都需要初始化的初始化代码。
TestContext中包含了单元测试的基本信息。
1 [ClassInitialize()] 2 public static void MyClassInitialize(TestContext testContext){ } |
2.ClassCleanup
标识了这个属性的方法会在这个测试class运行结束的时候运行,和上一个标签对应。
3.TestInitialize
1 [ClassCleanup()] 2 public static void MyClassCleanup(){ } |
除了在整个测试class的开始和结束运行的方法外,还有针对每个测试方法的开始和结束的方法。有时候需要对测试方法用的实例进行必要的初始化,但是需要保证每个方法用的的实例和其他方法中的实例无关的,则需要在每个方法的开始初始化实例,在结束的时候恢复对实例的修改。
标识TestInitialize的方法会在每个测试方法开始之前运行。
1 [TestInitialize()] 2 public void MyTestInitialize() { } |
4.TestCleanup
标识TestInitialize的方法会在每个测试方法结束之后运行。
1 [TestCleanup()] 2 public void MyTestCleanup() { } |
测试代码完成后,可在测试代码文件中右键菜单中点击运行测试代码,也可以把测试工程设置为项目的启动项,按F5直接运行测试工程,调试测试代码。
会得到如下的测试运行结果。