【发布时间】:2012-01-19 19:51:49
【问题描述】:
是否有 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);
}
}
【问题讨论】:
-
非静态是什么意思?你的示例代码有什么问题?
-
示例代码编译,但不会运行。用 ClassInitialize 修饰的方法需要是静态方法。
-
测试不会运行,因为 Initialize 方法需要将 TestContext 传递给 setup 方法,即使它没有被使用。
标签: unit-testing integration-testing mstest system-testing