Как использовать постоянный объект между тестовыми объектами NUnit? - PullRequest
0 голосов
/ 22 сентября 2009

Я планирую реализовать некоторые тесты с использованием nUnit. У меня также есть собственная библиотека записей метрик, которую я хотел бы использовать, чтобы получить некоторые метрики из теста. Указанная библиотека метрик обычно используется в приложениях и обычно используется примерно так:

// retrieve configuration.
string path = GetPath();
bool option = GetOption();

// Set up metrics recording object.
Metrics m = new Metrics(path, option);

Do.Something();
m.AddRecord(new Record()); // Record some metrics on what just happened

// later...

m.Finish();  // let it know we're done.

Теперь я могу создать экземпляр этого объекта, используя TestFixtureSetup и TestFixtureTeardown в каждом объекте (например, в родительском тестовом классе), но я бы предпочел, чтобы этот объект метрик сохранялся в всех тестовые прогоны. Возможно ли это, и если да, то что для этого нужно?

Ответы [ 2 ]

3 голосов
/ 22 сентября 2009

Вы можете использовать SetUpFixtureAttribute - "помечает класс, который содержит одноразовые методы установки или разрыва для всех тестовых приборов в данном пространстве имен."

1 голос
/ 22 сентября 2009

Вы можете представить объект Metrics как одиночный объект или просто как статическое свойство вспомогательного класса:

class TestHelper
{
    public static Metrics Metrics { get; private set; }

    static TestHelper
    {
        string path = GetPath();
        bool option = GetOption();
        Metrics = new Metrics(path, option);
    }

}

ОК, это не очень хороший паттерн, но для юнит-тестов все должно быть хорошо ...

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