Я пишу несколько тестов NUnit для операций с базой данных. Очевидно, что если Add()
терпит неудачу, то Get()
тоже не удастся. Тем не менее, он выглядит обманчивым, когда оба Add()
и Get()
терпят неудачу, потому что это выглядит как две проблемы, а не только одна.
Есть ли способ указать "порядок" для запуска тестов, в том случае, если при первом тестировании не выполняются следующие тесты:
В той же строке есть способ упорядочить классы unit test? Например, я хотел бы выполнить мои тесты для операций с базовыми базами данных перед тестированием данных округления с пользовательского интерфейса.
Примечание.. Это немного отличается от того, что тесты зависят друг от друга. Это больше похоже на то, что перед запуском нескольких тестов что-то работает. Это пустая трата времени, например, для запуска нескольких операций с базой данных, если вы не можете получить соединение с базой данных в первую очередь.
Изменить: Кажется, что некоторым людям не хватает смысла. Я не делаю этого:
[Test]
public void AddTest()
{
db.Add(someData);
}
[Test]
public void GetTest()
{
db.Get(someData);
Assert.That(data was retrieved successfully);
}
Скорее, я делаю это:
[Test]
public void AddTest()
{
db.Add(someData);
}
[Test]
public void GetTest()
{
// need some way here to ensure that db.Add() can actually be performed successfully
db.Add(someData);
db.Get(somedata);
Assert.That(data was retrieved successfully);
}
Другими словами, я хочу убедиться, что данные могут быть добавлены в первую очередь, прежде чем я смогу проверить, можно ли его получить. Люди предполагают, что я использую данные из первого теста, чтобы пройти второй тест, когда это не так. Я пытаюсь гарантировать, что одна операция возможна, прежде чем пытаться использовать другую, которая зависит от нее.
Как я уже сказал, вам нужно убедиться, что вы можете получить соединение с базой данных перед запуском операций с базой данных. Или вы можете открыть файл перед выполнением операций с файлами. Или подключитесь к серверу перед тестированием вызовов API. Или... вы понимаете.