В любом случае я мог бы инициализировать свою локальную переменную один раз для всех модульных тестов в одном и том же классе?
Если я использовал [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");
}
}