我在使用 NUnit 进行测试的.NET 工程中工作。 我有一个基础测试等级 < engreencode> BaseA , 它将一个共享对象初始化为构建器。 我衍生的等级 < generalcode> A 包含几种测试方法。 我使用“ pararallable > [Parallable( ParallelScope. self.] 属性, 允许在本类中平行进行测试。 以下是我设置的简化版本 :
public class BaseA
{
protected IMyInterface sharedObject;
public BaseA()
{
sharedObject = new MyClass(); // Initialization in the base constructor
}
}
[TestFixture]
[Parallelizable(ParallelScope.Self)]
public class A : BaseA
{
[Test]
public void Test1()
{
sharedObject.Method1();
// Other operations with sharedObject
}
[Test]
public void Test2()
{
sharedObject.Method2();
// Other operations with sharedObject
}
// Additional tests
}
我希望确保每种测试方法都获得自己的“强{代码>共享Object
> 是否每种测试方法都有新的 共享Object
实例?如果不是,什么是修改设置以确保每种测试方法获得单独实例的最佳方式? 强>
我考虑过使用“坚固”代码
public class BaseA
{
protected IMyInterface sharedObject;
[SetUp]
public void BaseSetup()
{
sharedObject = new MyClass(); // Initialization before each test
}
}
[TestFixture]
[Parallelizable(ParallelScope.Self)]
public class A : BaseA
{
[Test]
public void Test1()
{
sharedObject.Method1();
// Other operations with sharedObject
}
[Test]
public void Test2()
{
sharedObject.Method2();
// Other operations with sharedObject
}
// Additional tests
}
这种方法能否确保每种测试方法都获得一个单独的“Object ”实例,使测试对平行执行安全?是否为这一设想方案建议了任何其他做法?
谢谢你的帮助!