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が静的だった場合はどうなりますか?