Есть ли способ отправить значение из модульного теста в другой модульный тест? - PullRequest
0 голосов
/ 26 июня 2018

У меня есть функция, которая вычисляет некоторые вещи и вводит их в БД. Эта настройка важна для всех модульных тестов, потому что им нужны некоторые данные для работы.

Иногда мне нужно «очистить» БД, поэтому все модульные тесты указывают на неправильный идентификатор.

Обычно я сначала запускаю настройку, а затем меняю все модульные тесты, но это занимает много времени. Есть ли способ автоматизировать это?

Я хотел бы передать сгенерированный идентификатор в другие модульные тесты.

Итак, идея была примерно такой:

[SetupFixture]
public class{
    [Test]
    public void SetupDB(){
        setup();

        //now marking the result somehow so other tests can pick the result up
        return ID; //<--
    }
}

public class OtherTests{
    [Test]
    [Get_ID_From_SetupDB]
    public void testBaseOnID(int ID){
        //we do stuff now with ID
    }
}

PS: у меня нет проблем с переключением инфраструктуры тестирования, если вы знаете структуру, которая может сделать это

1 Ответ

0 голосов
/ 26 июня 2018

Тесты должны быть независимыми, и вы, как правило, никогда не должны передавать значения между тестами.

Что вы можете сделать в вашем случае, если все тесты находятся в одном классе, - это иметь переменную в вашем классе для хранения идентификатора и некоторую глобальную функцию настройки, которая устанавливает все и устанавливает переменную в правильный идентификатор , В NUnit для этого есть атрибут [OneTimeSetUp].

[TestFixture]
public class MyTests 
{
private int _testId;

[OneTimeSetUp]
public void SetItUp()
{
...
_testId = whatever;
}
[Test]
public void TestOne()
{
var whatever = _testId;
...
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...