visual-studio - 我应该初始化每个测试方法,还是只初始化类,或者两者都不初始化?

标签 visual-studio unit-testing mstest vs-unit-testing-framework

我在下面的评论中向自己(现在向整个世界,也许还有其他人)提出了这个问题:

[TestMethod()]
public void SetMessageTypeSubcodeTest()
{
    int AMessageTypeSubcode;
    // Should I put this class instantiation in MyTestInitialize?
    MessageClass target = new MessageClass(); 
. . .

我应该这样做吗:

[TestInitialize()]
public void MyTestInitialize()
{
MessageClass target = new MessageClass(); 
}

...或者这个:

[ClassInitialize()]
public void MyTestInitialize()
{
MessageClass target = new MessageClass(); 
}

...或者两者都不是?

而且由于 C#/.NET 是垃圾收集器,所以不需要在 TestCleanup() 或 ClassCleanup() 方法中释放 MessageClass,是吗?

最佳答案

您想要针对集合中的每个测试 测试的类的全新实例。这将防止任何可能的副作用(可能发生),并因此防止测试(应该是单位,分开)相互影响。

关于visual-studio - 我应该初始化每个测试方法,还是只初始化类,或者两者都不初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9135110/

相关文章:

c# - checkin 前运行单元测试

c++ - 如何在 RHEL c/cpp 应用程序上测试连接超时

node.js - 诗农模拟 : check args of 2nd call only

wpf - 在不同项目类型的 Visual Studio 中进行集成测试

visual-studio - 当 VS2013 以管理员身份运行时,MSTest 正在删除测试结果

c# - 如何正确使用 TestContext.Properties

visual-studio - .fsx 中的 IntelliSense 和动态加载的程序集

c# - 在 Linux Ubuntu 中开发 C#/ASP.NET 的软件

c# - 无法在 Visual Studio 中更新 dll 引用

java - 复杂 Java 模型的 JUnit 测试