【问题标题】:How do I run a set of nUnit tests with two different setups?如何使用两种不同的设置运行一组 nUnit 测试?
【发布时间】:2010-03-05 17:01:55
【问题描述】:

(对不起,标题不清楚,如果你能想出更好的,请编辑它)

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

那么我是否应该有一个包含所有测试的超类和一个抽象的SetUp() 方法,然后为每个数据存储创建一个子类?

或者有没有更好的方法?

请参阅“Case insensitive string compare with linq-to-sql and linq-to-objects”了解我正在测试的内容。

【问题讨论】:

    标签: unit-testing nunit


    【解决方案1】:

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

    您所有的测试用例都在一个抽象类中,例如在 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 是更好的解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-11
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多