2关于nUnit的问题

时间:2010-06-13 08:59:27

标签: unit-testing nunit

我有2个关于nunit功能的问题。

[TestFixtureSetUp]和[SetUp]属性有什么区别?

我正在编写一个带有测试的类,我看到我的一半测试函数需要一个设置, 而另一半需要另一个设置。 如何在一个类中使用不同函数调用两个不同的SetUp函数

感谢。

2 个答案:

答案 0 :(得分:7)

使用[TestFixtureSetUp]属性标记的方法将在当前测试套件中的所有测试之前执行一次,并且在每次测试之前将使用[SetUp]属性标记的方法

对于包含测试的类,其中包含需要不同设置函数的测试。只需将此类拆分为两个 - 每个类都有自己的SetUp函数。

    [TestFixture]
    public void TestSuite1
    {
      [SetUp]
      public void SetUp1()
      {
        ...
      }

      [Test]
      public void Test1()
      {
        ...
      }
    }

   [TestFixture]
    public void TestSuite2
    {
      [SetUp]
      public void SetUp2()
      {
        ...
      }

      [Test]
      public void Test2()
      {
        ...
      }
    }

或显式调用SetUp函数

    [TestFixture]
    public void TestSuite
    {

      public void SetUp1()
      {
        ...
      }

      public void SetUp2()
      {
        ...
      }

      [Test]
      public void Test1()
      {
        SetUp1();

        ...
      }

      [Test]
      public void Test2()
      {
        SetUp2();

        ...
      }
    }

答案 1 :(得分:1)

TestFixtureSetup方法在执行任何测试方法之前执行一次。在测试夹具中执行每个测试方法之前执行Setup方法。

  

我怎么能在一堂课中有两门课   几乎没有不同的SetUp功能   用不同的函数调用

在标记为TestFixture的单个类中,不能有两个不同的SetUp函数。如果单个测试需要一些初始化,那么将初始化代码放在这些函数中是有意义的。

  

我看到了我的一半测试功能   需要一个设置

我认为你需要考虑测试......