NUnit TestFixture与测试用例

时间:2014-01-22 10:24:05

标签: unit-testing nunit

NUnit是否提供了与TestCase相关联的TestFixture属性的功能?我想在同一个接口的不同实现上运行相同的测试集。然后将在SetUp方法中选择具体实现,并且每个实现都应该运行每个测试。

1 个答案:

答案 0 :(得分:0)

我认为没有任何可能性。但无论如何,这个好主意。

如果您不关心TestCase属性,可以将TestCaseSource属性与抽象基类一起使用。

public abstract class A
{
    public class TestCases : List<TestCaseData>
    {
        public TestCases()
        {
            Add(new TestCaseData(1));
            Add(new TestCaseData(2));
        }
    }

    public abstract void Test(int i);
}

[TestFixture]
public class B : A
{
    [Test]
    [TestCaseSource(typeof(TestCases))]
    public override void Test(int i)
    {
        Assert.That(i, Is.GreaterThan(0));
    }
}

[TestFixture]
public class C : A
{
    [Test]
    [TestCaseSource(typeof(TestCases))]
    public override void Test(int i)
    {
        Assert.That(i, Is.LessThan(10));
    }
}