我有一个看起来像这样的单元测试类。
[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类知道它要使用哪个提供程序?或者甚至可以将参数(例如布尔值)从TestMethod发送到TestBase?
谢谢!