14

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);
    }
}
4

1 回答 1

7

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

但:

  1. 查看您的代码,没有理由不应该将其与and_cookie一起设为静态。这样做会让你在编写测试时忘记配置的烦恼……_soapInitializeTearDown
  2. 如果您愿意“跳船”,[ClassCleanup][ClassInitialize]的 NUnit 等效项可以应用于静态和实例方法。
于 2012-01-23T13:22:47.770 回答