C# 在声明时或在TestInitialize方法中初始化单元测试类成员?

C# 在声明时或在TestInitialize方法中初始化单元测试类成员?,c#,unit-testing,mstest,initializer,C#,Unit Testing,Mstest,Initializer,我知道,在运行单元测试时,会为每个测试方法实例化类。因此,我认为在声明时初始化成员与在TestInitialize方法中没有区别。做前者有什么特别错误吗 请注意,这是一个与不同的问题,尽管在技术上可能类似。否,在声明中初始化成员没有任何错误 主要归结为人们喜欢的风格。我更喜欢尽可能多地将成员设置为只读,因此我更喜欢在可能的情况下在声明中进行初始化 其他人可能更喜欢对所有初始化和清理逻辑使用setup/teardown方法。的可能重复取决于您是否需要重新初始化这些值或只设置一次。@Sinatr不完

我知道,在运行单元测试时,会为每个测试方法实例化类。因此,我认为在声明时初始化成员与在TestInitialize方法中没有区别。做前者有什么特别错误吗


请注意,这是一个与不同的问题,尽管在技术上可能类似。

否,在声明中初始化成员没有任何错误

主要归结为人们喜欢的风格。我更喜欢尽可能多地将成员设置为只读,因此我更喜欢在可能的情况下在声明中进行初始化


其他人可能更喜欢对所有初始化和清理逻辑使用setup/teardown方法。

的可能重复取决于您是否需要重新初始化这些值或只设置一次。@Sinatr不完全相同。但正是因为这个问题,我问了这个问题。我的意思是,如果每个测试都实例化了类,那么ClassInitialization有什么意义呢?@Ric这对这个问题有意义吗?他们可以重新分配,无论是在声明时草签还是在宣誓时草签。当然,在声明时,您还可以选择将其设置为只读以防止重新分配。这取决于您希望如何组织测试类。就我个人而言,如果我定义了一个在每个方法中使用的成员,我倾向于只在TestInitialze中重新分配它,这样我就知道每个方法都获得相同的默认值,但是它被更改了,因此readonly可能不适合。通过在声明时草签,它们可以成为只读的,这也是我更喜欢的,而且更具防御性。