У меня есть класс модульного теста, который выглядит примерно так.
[TestClass]
public class DemoTests : TestBase
{
[TestMethod]
public async Task TestWithInMemory()
{
using(var context = new InMemoryDbContext())
{
//Do something with the context
}
}
[TestMethod]
public async Task TestWithSqlServer()
{
using(var context = new SqlServerDbContext())
{
//Do something with the context
}
}
}
А мой класс TestBase выглядит примерно так.
[TestClass]
public class TestBase
{
public TestContext TestContext { get; set; }
[TestInitialize]
public void Initialise()
{
if(parameter passed from test method is InMemory)
{
//create InMemory database context
}
else
{
//create SQL Server database context
}
}
[TestCleanup]
public void Cleanup()
{
//Dispose
}
}
По сути, я пытаюсь использовать InMemoryи провайдеры SQL Server, чтобы написать мои тесты в зависимости от сценария.Я знаю, что могу разделить контрольные примеры, основанные на этом, в отдельные файлы.Но возможно ли TestMethod сообщить классу TestBase, какой поставщик он хочет использовать?Или вообще можно отправить параметр (например, bool) из TestMethod в TestBase?
Заранее спасибо!