(抱歉标题不清楚,如果你能想出更好的标题,请编辑它)
我希望在两个不同的数据存储上运行相同的测试,我可以在Setup()方法中创建数据存储。
那么我应该有一个包含所有测试和抽象SetUp()
方法的超类,那么每个数据存储都有一个子类?
或者有更好的方法吗?
有关我正在测试的内容,请参阅“Case insensitive string compare with linq-to-sql and linq-to-objects”。
答案 0 :(得分:11)
这是一个简单的解决方案。
所有测试用例都在一个抽象类中,例如在TestBase类中。例如:
public abstract class TestBase
{
protected string SetupMethodWas = "";
[Test]
public void ExampleTest()
{
Console.Out.WriteLine(SetupMethodWas);
}
// other test-cases
}
然后为每个设置创建两个子类。因此,每个子类都将使用it-setup方法和所有继承的测试方法运行。
[TestFixture]
class TestA : TestBase
{
[SetUp]
public void Setup()
{
SetupMethodWas = "SetupOf-A";
}
}
[TestFixture]
class TestB : TestBase
{
[SetUp]
public void Setup()
{
SetupMethodWas = "TestB";
}
}
这很棒。但是,对于更简单的测试,parameterized tests是更好的解决方案