我目前正在开发一个小工具,使用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配置中的种子方法。创建了数据库,执行了迁移,但我只是没有在我的数据库中获取任何数据。
运行集成测试非常重要。
任何知道种子方法为什么不起作用的人?