实体框架代码优先 - 数据库初始化程序 - 种子方法

时间:2014-06-19 09:03:00

标签: c# entity-framework integration-testing

我目前正在开发一个小工具,使用Entity Framework Code First对数据库执行集成测试。

但是,问题是在创建数据库时不会执行我的种子方法。

编写该工具,以便在每次测试时都删除并重新创建数据库。

首先,我的测试背景是:

public class IntegrationArrangeActAssert<T> : ArrangeActAssert where T : DbContext
{
    #region Properties

    protected T context { get; set; }

    #endregion

    #region ArrangeActAssert Members

    /// <summary>
    ///     Set up the current state of the specs context.
    /// </summary>
    protected override void Arrange()
    {
        Database.SetInitializer(new DropCreateDatabaseAlways<T>());
        context.Database.Initialize(true);

        base.Arrange();
    }

    #endregion
}

然后,我的单元测试只是继承了这个类。

现在,当我运行单元测试时,不会执行T配置中的种子方法。创建了数据库,执行了迁移,但我只是没有在我的数据库中获取任何数据。

运行集成测试非常重要。

任何知道种子方法为什么不起作用的人?

0 个答案:

没有答案