2 вопроса о nUnit - PullRequest
       1

2 вопроса о nUnit

1 голос
/ 13 июня 2010

У меня есть 2 вопроса о функциональности nunit.

В чем разница между атрибутами [TestFixtureSetUp] и [SetUp]?

Я пишу некоторый класс с тестами, и я вижу, что половина моих тестовых функций нуждается в одной настройке, А другая половина нуждается в другой настройке. Как я могу иметь в одном классе две маленькие разные функции SetUp, которые вызываются с разными функциями

Спасибо.

Ответы [ 2 ]

7 голосов
/ 13 июня 2010

Метод, отмеченный атрибутом [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 голос
/ 13 июня 2010

Метод TestFixtureSetup выполняется один раз перед выполнением любого из тестовых методов. Метод Setup выполняется перед выполнением каждого метода теста в тестовом приборе.

Как я могу иметь в одном классе два немного разные функции SetUp, которые вызывается с разными функциями

Вы не можете иметь две разные функции SetUp в одном классе, помеченном как TestFixture. Если отдельные тесты нуждаются в некоторой инициализации, то имеет смысл поместить код инициализации внутри самих этих функций.

Я вижу, что половина моих тестовых функций нужна одна настройка

Я думаю, что вам нужно учесть тесты ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...