【发布时间】:2018-06-24 14:25:09
【问题描述】:
我是否可以在同一个类中为所有单元测试初始化一次局部变量?
如果我使用[TestInitialize()],每个单元测试都会初始化一次,类似地,如果我使用构造函数,每个测试都会调用一次。
我想用[ClassInitialize()],但是这个方法必须是静态的,不能访问私有字段。
[TestClass()]
public sealed class ElasticsearchTest
{
private ElasticsearchClient _elasticClient;
[ClassInitialize()]
public static void ClassInit()
{
// cannot do this... visual studio error:
// An object reference is required for the non-static field, method or property
_elasticClient = new ElasticsearchClient("http://localhost:9200", true);
}
[TestInitialize()]
public void TestInit()
{
// this initialization happens once for each test
_elasticClient = new ElasticsearchClient("http://localhost:9200", true);
}
[TestMethod()]
public void Test1()
{
var res = _elasticClient.SearchDocuments("table");
}
[TestMethod()]
public void Test2()
{
var res = _elasticClient.SearchDocuments("chair");
}
}
【问题讨论】:
标签: c# unit-testing