是否存在MSTest的[ClassCleanup]&的非静态等价物。 [ClassInitialize]?

时间:2012-01-19 19:51:50

标签: unit-testing integration-testing mstest system-testing

MSTest的[ClassCleanup]&是否存在非静态等价物? [ClassInitialize]

我正在使用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 个答案:

答案 0 :(得分:6)

据我所知,回答你的问题 - 不,MSTest 中没有非静态的等效

但是:

  1. 查看您的代码,没有理由不将_cookie_soapInitializeTearDown一起设为静态。这样做会让你忘记测试编写过程中的配置问题......
  2. 如果你愿意“跳船”,那么[ClassCleanup]&的NUnit等价物。 [ClassInitialize]可以应用于静态&实例方法。