当 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
and的状态_complexMock2
吗?
如果 complexMocks 是静态的呢?