我正在为图书馆创建单元测试。该库连接到数据源,然后我正在做一些测试。此后,数据源将被断开连接。
这是一个可以理解以上描述的示例:
[TestMethod]
public void Test()
{
var datasourceObject = new DatasourceObject("location-string");
datasourceObject.Connect();
// Do some Stuff with Asserts
datasourceObject.Disconnect(); // must be executed
}
是否有最佳实践来实现这一目标?
最佳答案
如果您在其他测试中使用资源,则将其移至类字段并使用[TestInitialize]
和[TestCleanup]
获取并释放该资源:
private Foo datasourceObject;
[TestInitialize]
public void TestInitialize()
{
this.datasourceObject = new DatasourceObject("location-string");
this.datasourceObject.Connect();
}
[TestMethod]
public void Test()
{
// Do some Stuff with Asserts
}
[TestCleanup]
public void TestCleanup()
{
this.datasourceObject.Disconnect();
}
如果仅在此测试中使用资源,则使用
try
.. finally
[TestMethod]
public void Test()
{
try
{
var datasourceObject = new DatasourceObject("location-string");
datasourceObject.Connect();
// Do some Stuff with Asserts
}
finally
{
datasourceObject.Disconnect(); // must be executed
}
}
如果资源是一次性的,则使用
using
语句:[TestMethod]
public void Test()
{
using(var datasourceObject = new DatasourceObject("location-string"))
{
datasourceObject.Connect();
// Do some Stuff with Asserts
}
}