當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是靜態的呢?