您好我必须在我使用Nunit进行的所有测试中使用变量
SimpleContainer container = new SimpleContainer();
所以我尝试将此定义放在安装程序类中:
[SetUpFixture]
public static class TestSetup
{
public static SimpleContainer container = new SimpleContainer();
}
我使用静态类来写能力:
IMyClass myClassExpected = (IMyClass)TestSetup.container.GetInstance(typeof(IMyClass), null);
但是在运行测试后我得到了这个错误:“TestSetup是一个抽象类”
我根本不明白问题在哪里
答案 0 :(得分:2)
我建议你不要打扰使用静态实例,而是使用继承。
因此,创建一个基类,其中包含您的对象:
public class BaseTestFixture
{
public SimpleContainer Container { get { return new SimpleContainer(); } }
}
让你的所有测试继承自:
public class GoogleTests : BaseTestFixture
{
[Test]
public void GoToGoogle()
{
Container.GetInstance(.....);
}
}
答案 1 :(得分:0)
您将测试夹具声明为静态。因此,NUnit无法创建它的实例并为您提供错误。只需将其更改为
即可[SetUpFixture]
public class TestSetup
{
...
答案 2 :(得分:0)
我可能误解了这个,但你可以声明一个类变量,并且可以在构造函数中做任何赋值。这是在TestFixture类中,而不是SetUpFixture类。