我需要开始集成测试涉及数据访问的BLL区域,我想知道管理测试数据库的最佳方法(需要与我的日常开发数据库分开) 。我可以手动管理这样的数据库,记住每当架构改变时刷新它,但感觉必须有一个更流畅的解决方案。
我的解决方案包括一个单元测试项目和一个SQL Server数据库项目。当我使用EF5(数据库优先)时,我可以在[TestInitialise]
期间使用上下文创建数据库,还是只有“代码优先”支持?那么(以某种方式)利用数据库项目的“发布”功能在开始测试运行时创建测试数据库呢?还有其他建议吗?
答案 0 :(得分:0)
您可以在测试或临时数据库中使用事务吗? 我经常在我的设置中开始交易:
[SetUp]
public void SetUp()
{
_transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew);
}
然后将其丢弃在拆解中:
[TearDown]
public void TearDown()
{
_transactionScope.Dispose();
}
在某些情况下,对我来说,这减少了对额外数据库的需求。