Я пытаюсь разбить единый тестовый класс на логические группы на основе определенного сценария. Однако мне нужно иметь TestFixtureSetUp
и TestFixtureTearDown
, которые будут работать для всего теста. В принципе мне нужно сделать что-то вроде этого:Создание вложенных классов TestFixture с помощью NUnit
[TestFixture]
class Tests {
private Foo _foo; // some disposable resource
[TestFixtureSetUp]
public void Setup() {
_foo = new Foo("VALUE");
}
[TestFixture]
public class Given_some_scenario {
[Test]
public void foo_should_do_something_interesting() {
_foo.DoSomethingInteresting();
Assert.IsTrue(_foo.DidSomethingInteresting);
}
}
[TestFixtureTearDown]
public void Teardown() {
_foo.Close(); // free up
}
}
В этом случае я получаю NullReferenceException на _foo
предположительно потому, что Teardown который вызывается перед внутренним классом выполняется.
Как достичь желаемого эффекта (обзор тестов)? Есть ли расширение или что-то в NUnit, которое я могу использовать, это поможет? Я бы предпочел придерживаться NUnit в это время и не использовать что-то вроде SpecFlow.
Но нет способа вложить другой класс под этот класс «Given_some_scenario»? Идея заключалась в том, чтобы охватывающий класс относился ко всему разделу (например, «CustomerTests»), а затем имел каждый подкласс для отдельного сценария (например, «When_searching_customers') –
Почему бы не группировать иерархическую структуру с использованием наследования? 'When_searching_customers: CustomerTestBase',' When_creating_a_customer: CustomerTestBase' и т. Д.? –
Это может сработать, теперь, когда я думаю об этом! Благодаря! –