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

Ada*_*nas 13 integration-testing unit-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);
    }
}
Run Code Online (Sandbox Code Playgroud)

sel*_*ary 6

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

但:

  1. 看着你的代码,没有理由为什么_cookie而且_soap不应该是静态的,以及InitializeTearDown.这样做会让你忘记测试编写过程中的配置问题......
  2. 如果您愿意"跳槽",[ClassCleanup][ClassInitialize]的NUnit等价物可以应用于静态和实例方法.