我正在NUnit中设置测试并有一个新手问题.
是否有可能在多个[TestFixture]中使用的Test/s?
所以[Test] ValidateString(string bob)
可以在一系列不同的[TestFixture]中调用吗?
这听起来不像是对我的考验.测试通常是无参数的(除非你使用[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)
您还可以在每个灯具中添加额外的测试,这些测试不会测试常见功能,也不需要在灯具之间重复使用.