TestInitialize与ClassInitialize

sno*_*475 65 c# mstest vs-unit-testing-framework

在MSTest中TestInitializevs 之间有什么区别ClassInitialize?每个人的优点是什么?

我的印象是TestInitialze应该每次都进行EACH测试吗?那是对的吗?这ClassInitialize将每次运行任何类的新实例?

cha*_*sos 96

这两个属性仅适用于它们所属的类(以及测试).

TestInitialize声明属性的同一个类上声明的每个测试之前运行.

ClassInitialize在声明属性的类的初始化时运行.换句话说,它不适用于每个班级.仅适用于包含该ClassInitialize方法的类.

如果您想要一个在所有测试或类初始化之前运行一次的方法,请使用AssemblyInitialize.

  • ClassInitialize和AssemblyInitialize的用例是什么?我很难获得ClassInitialize的实际用例... (3认同)
  • 一个用例是使用需要很长时间才能运行的初始化方法运行DLL的集成测试.ClassInitialize可用于在批处理测试开始时执行初始化,ClassCleanup将调用DLL的terminate方法. (2认同)
  • @DPH TestInitialize 适合重复代码,只有当代码运行时间较长时,才会使用 ClassInitialize (2认同)