gpt4 book ai didi

c# - 运行单元测试时测试类的范围是什么?

转载 作者:行者123 更新时间:2023-11-30 12:12:42 24 4
gpt4 key购买 nike

当 Visual Studio 运行单元测试时,它会同时运行许多测试。这些正在运行时,测试类的范围究竟是什么。它们是否都在单独的应用程序域中运行,还是完全共享数据?

例如,如果我有以下测试类:

[TestClass]
public class FooTests
{
Mock<ISomeInterface1> _complexMock1;
Mock<ISomeInterface2> _complexMock2;

public void CreateComplexMocks()
{
//set up _complexMock1 & _complexMock2
}

[TestMethod]
public void Test1()
{
CreateComplexMocks();

//use _complexMock1 & _complexMock2 in test
}

[TestMethod]
public void Test2()
{
CreateComplexMocks();

//use _complexMock1 & _complexMock2 in test
}
}

测试利用 CreateComplexMocks() 助手来构建一些模拟。这些作为成员公开而不是传递回测试(在现实世界的例子中可能会有更多)

我的问题是,如果两个测试同时运行,它们会共享 _complexMock1_complexMock2 的状态吗?

如果 complexMocks 是静态的呢?

最佳答案

找到this blog ,似乎在不同的线程上为每个测试实例化了一个单独的测试类。

所以实例成员不会被共享,但是静态成员会。

关于c# - 运行单元测试时测试类的范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13175576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com