用于多个[TestFixture]

Daz*_*Cat 1 c# nunit

我正在NUnit中设置测试并有一个新手问题.

是否有可能在多个[TestFixture]中使用的Test/s?

所以[Test] ValidateString(string bob)

可以在一系列不同的[TestFixture]中调用吗?

Ada*_*ear 5

这听起来不像是对我的考验.测试通常是无参数的(除非你使用[TestCase]s)并且在单个夹具的上下文中运行它通常就足够了 - 它要么经过一次又要好,否则它就是破坏的测试.

如果您只有一个对字符串进行某些验证的方法,您可以将其设置为某个类(例如TestHelpers)上的静态方法,并从任何需要它的测试(在多个测试装置中)调用它.


这是另一个想法:继承.您可以拥有一个包含所有测试的基础夹具,然后是从中继承的夹具,用于设置您需要的任何变量.测试将针对每个夹具运行.我不熟悉Selenium RC,但您应该能够调整下面的代码来设置各种灯具所需的变量.

[TestFixture]
public class BaseFixtureTests
{
    protected IMyClass _myClass;

    [TestFixtureSetUp]
    public void FixtureSetup() 
    {
        _myClass = ConfigureMyClass();
    }

    protected virtual IMyClass ConfigureMyClass() 
    {
        // fixtures that inherit from this will set up _myClass here as they see fit.
    }

    [Test]
    public void MyClassTest1() 
    {
        // test something about _myClass;
    }
}

[TestFixture]
public class MySpecificFixture1 : BaseFixtureTests
{
    protected override IMyClass ConfigureMyClass()
    {
        return new MySpecificMyClassImplementation();
    }   
}

public class MySpecificMyClassImplementation : IMyClass
{
    //some implementation
}
Run Code Online (Sandbox Code Playgroud)

您还可以在每个灯具中添加额外的测试,这些测试不会测试常见功能,也不需要在灯具之间重复使用.