Есть ли нестатические эквиваленты для [ClassCleanup] & [ClassInitialize] MSTest? - PullRequest
11 голосов
/ 19 января 2012

Есть ли нестатические эквиваленты для [ClassCleanup] и [ClassInitialize] MSTest?

Я использую MSTest для некоторых тестов уровня системы / интеграции и не хочу беспокоиться об очистке и инициализации соединения в тестах.

Пример кода:

[TestClass]
public class DefectCreatorTest
{
    private long _cookie;
    private soapcgi _soap;

    [ClassInitialize]
    public void Initialize()
    {
        _soap = new soapcgi {Url = "http://localhost:80/scripts/soapcgi.exe"};
        _cookie = Transaction.Login(_soap);
    }

    [ClassCleanup]
    public void TearDown()
    {
        Transaction.Logout(_cookie, _soap);
    }

    [TestMethod]
    public void CreateDefectTest()
    {
        var result = _soap.Foo();
        Assert.AreEqual("bar", result);
    }
}

1 Ответ

6 голосов
/ 23 января 2012

Отвечая на ваш вопрос, насколько я знаю, - нет, в MSTest нет нестатического эквивалента .

Но:

  1. Глядя на ваш код, нет никаких причин, по которым _cookie и _soap не следует делать статическими, наряду с Initialize и TearDown.Это позволит вам забыть о проблемах с конфигурацией во время написания теста ...
  2. Если вы хотите "прыгнуть с корабля", эквиваленты NUnit для [ClassCleanup] & [ClassInitialize] можно применять к статическим методам и методам экземпляра.
...