代码之家  ›  专栏  ›  技术社区  ›  Ian Ringrose

如何使用两种不同的设置运行一组nunit测试?

  •  4
  • Ian Ringrose  · 技术社区  · 15 年前

    (对标题不清楚表示抱歉,如果您能想出更好的标题,请进行编辑)

    我希望在两个不同的数据存储上运行相同的测试,我可以在setup()方法中创建数据存储。

    那么我应该有一个包含所有测试和摘要的超级类吗? SetUp() 方法,然后为每个数据存储都有一个子类?

    还是有更好的方法?

    见“ Case insensitive string compare with linq-to-sql and linq-to-objects “为了我正在测试的东西。

    1 回复  |  直到 15 年前
        1
  •  11
  •   Gamlor Gabriele Ran    15 年前

    一个简单的解决方案就是这样。

    所有测试用例都在抽象类中,例如在TestBase类中。例如:

    public abstract class TestBase
    {
        protected string SetupMethodWas = "";
    
        [Test]
        public void ExampleTest()
        {
            Console.Out.WriteLine(SetupMethodWas);    
        }
    
        // other test-cases
    }
    

    然后为每个设置创建两个子类。因此,每个子类将使用它的设置方法和所有继承的测试方法单独运行。

    [TestFixture]
    class TestA : TestBase
    {
        [SetUp]
        public void Setup()
        {
            SetupMethodWas = "SetupOf-A";    
        }
    }
    [TestFixture]
    class TestB : TestBase
    {
        [SetUp]
        public void Setup()
        {
            SetupMethodWas = "TestB";
        }
    }
    

    这很管用。但是对于更简单的测试 parameterized tests 是更好的解决方案