1

我需要开始对涉及数据访问的 BLL 区域进行集成测试,并且我想知道管理测试数据库的最佳方法(它需要与我的日常开发数据库分开)。我可以手动管理这样的数据库,记得在架构更改时刷新它,但感觉必须有一个更灵活的解决方案。

我的解决方案包括一个单元测试项目和一个 SQL Server 数据库项目。当我使用 EF5(数据库优先)时,我可以在 期间使用上下文创建数据库[TestInitialise],还是只有“代码优先”支持?在开始测试运行时(以某种方式)利用数据库项目的“发布”功能创建测试数据库怎么样?还有其他建议吗?

4

1 回答 1

0

您可以在测试或暂存数据库上使用事务吗?我经常在我的设置中开始交易:

     [SetUp]
        public void SetUp()
        {
            _transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew);
        }

然后在拆解中处理它:

   [TearDown]
        public void TearDown()
        {
            _transactionScope.Dispose();
        }

在某些情况下,这减轻了对额外数据库的需求。

于 2013-06-17T12:58:52.357 回答