【问题标题】:Does .net create instance per Test Method?.net 是否为每个测试方法创建实例?
【发布时间】:2019-09-23 22:29:04
【问题描述】:

我的问题是关于 .net 运行测试方法的方式。假设我有一个这样的测试类:

[TestClass]
public class MyTestClass
{
    [TestMethod]
    public void Test1()
        {
            ...
        }

    [TestMethod]
    public void Test2()
        {
            ...
        }
}

问题是.net 是否为每个这些测试方法创建一个实例?还是只创建一个 MyTestClass 实例并在同一个实例上运行所有测试方法?

【问题讨论】:

  • 你可以为此写一个测试:)
  • 例如在构造函数中记录消息或设置断点
  • 是的。大约一年前我寻找了同样的问题,但现在无法为您提供证明链接。 MS Test 为测试之间的隔离创建新实例。这意味着您可以通过为类成员赋予值来在测试类中创建状态,并确保没有测试会获得其他测试设置的值。请记住不要使用静态,除非您想为所有测试共享它。

标签: c# .net unit-testing testing tdd


【解决方案1】:

“MSTest在执行过程中分别实例化每个测试方法的类,每个实例化发生在一个单独的线程上”

https://blogs.msdn.microsoft.com/nnaderi/2007/02/16/that-pesky-mstest-execution-ordering/

【讨论】:

    猜你喜欢
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    相关资源
    最近更新 更多