每个方法上几乎都带有TestMethod这个属性,我们直觉告诉我们,这肯定是表示被测试函数的意思.事实也正是如此,在Unit Test里,有许多测试属性,常用的如下:
| 属性 | 描述 |
|
TestClass() |
该属性表示一个测试装置。 |
|
TestMethod() |
该属性表示一个测试用例。 |
|
AssemblyInitialize() |
在执行为执行选择的第一个 TestClass() 中的第一个 TestMethod() 之前,执行带有该属性的方法。 |
|
ClassInitialize() |
带有该属性的方法在执行第一个测试之前调用。 |
|
TestInitialize() |
带有该属性的方法在执行每个 TestMethod() 之前调用。 |
|
TestCleanup() |
带有该属性的方法在执行每个 TestMethod() 之后调用。 |
|
ClassCleanup() |
带有该属性的方法在执行 ALL 测试之后调用。 |
|
AssemblyCleanup() |
在执行为执行选择的第一个 TestClass() 中的第一个 TestMethod() 之后,执行带有该属性的方法。 |
|
Description() |
提供关于给定 TestMethod() 的描述。 |
|
Ignore() |
由于某种原因忽略 TestMethod() 或 TestClass()。 |
|
ExpectedException() |
当测试特定异常时,如果使用该属性指定的异常不是从实现代码引发,则测试不会失败。 |
单元测试运行时,用户可能需要统一初始一些变量或者测试结束统一释放占用资源,而不必在每个测试方法中初始化和资源回收。vs单元测试中提供了这样的属性
签。
1. ClassInitialize
如果方法标识了这个属性。则这个方法在整个测试class运行开始时候运行。可以在这个方法中添加所有测试方法都需要初始化的初始化代码。
TestContext中包含了单元测试的基本信息。
2 public static void MyClassInitialize(TestContext testContext){ }
3. TestInitialize
2 public static void MyClassCleanup(){ }
2 public void MyTestInitialize() { }
2 public void MyTestCleanup() { }