SetupFixture, содержащий больше, чем просто Setup / TearDown - PullRequest
0 голосов
/ 03 ноября 2010

Можно ли добавить Tests к [SetupFixture], который также вызывается автоматически при при каждом запуске , за исключением [SetUp]/[TearDown]?

Например:

[SetupFixture]
public class SetupFixture {

    [SetUp]
    public void Setup() {
        StaticObject.DoInit();
    }

    [SomethingThatIsCalledAutomaticallyToo]
    public void Setup_StaticObjectNamePropertyIsInitialized()
    {
        // Arrange
        var expected = "ObjectName!";

        // Act
        var actual = StaticObject.Name;

        // Assert
        Assert.AreEqual(expected.equals(actual));
    }

    // More Checks....

    [TearDown]
    public void TearDown() {
        StaticObject.DoEqualize();
    }
}

Ответы [ 2 ]

1 голос
/ 03 ноября 2010

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

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

0 голосов
/ 03 ноября 2010

Вы можете оставить метод в качестве теста, если вы все еще хотите сделать утверждения на нем.Если вы хотите вызывать его до или после каждого теста, вы можете просто вызвать его внутри этого метода, как обычный вызов метода.

[SetUp]
public void Setup() {
    StaticObject.DoInit();

    Setup_StaticObjectNamePropertyIsInitialized()
}

[SomethingThatIsCalledAutomaticallyToo]
public void Setup_StaticObjectNamePropertyIsInitialized()
{
    // test stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...