Как убедиться, что определенный метод в классе всегда вызывается первым? - PullRequest
0 голосов
/ 27 июня 2011

Я не слишком уверен, выполнимо ли это или нет.

В настоящее время мне нужно установить информацию о лицензии до начала моего тестового кода, потому что в этих тестах используется сторонняя библиотека компонентов, которая требует от меня инициализации информации о лицензии. Лицензионная информация должна быть установлена ​​только один раз - в начале работы программы.

Но из того, что я понимаю, философия NUnit заключается в том, что вы можете запускать класс, любой класс в любое время, в любой последовательности, поэтому, хотя для каждого класса есть метод setup, в нем нет setup метод, который запускается в начале теста для набора тестов. Но я могу ошибаться.

Есть ли способ убедиться, что метод всегда вызывается первым в течение всего процесса выполнения теста?

Ответы [ 2 ]

3 голосов
/ 27 июня 2011

Посмотрите на атрибут SetupFixture . Вы можете определить одну функцию настройки, которая будет запускаться один раз для всего пространства имен.

0 голосов
/ 27 июня 2011

Обычно я стараюсь по возможности избегать настройки и срывов. Они имеют тенденцию указывать (особенно на слезы), что я пишу интеграционные тесты, когда мне следует проводить юнит-тесты. Однако мне известна ваша ситуация. Когда это необходимо, я получаю testfixture из класса, который обрабатывает лицензирование.

public class LicencedTestFixture
{
    private LicenseComponent _licenseComponent;

    public LicencedTestFixture()
    {
        _licenseComponent = new LicenseComponent();
        _licenseComponent.Init();
    }

    ~LicencedTestFixture()
    {
        _licenseComponent.Shutdown();
    }

}  

Тестовое устройство просто наследуется от класса, и это все, что ему нужно знать:

[TestFixture]
public sealed class SomeTestFixture: LicencedTestFixture 
{}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...