(我不确定这个问题是应该在StackOverflow中还是在不同的StackExchange站点中)。
我想为 ASP.NET MVC 5 Web应用程序创建 UI测试。问题是,在每个新版本中,应用程序都会添加许多涉及新表,新业务数据条目和所有内容的新功能,因此大量的 DDL 会发生变化。除此之外,每个版本都引入了新的视图,函数,存储过程和DML更改。
我想保持代码库独立于数据库,因此我不需要为该代码库版本创建适当的数据库,以便尽可能简化并使用自动化。
我的第一个想法是:因为我们使用 EF ,所以让DbContext初始化在创建上下文时从模型创建架构:
public MyContext()
{
Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>()));
}
并且每个测试在开始时创建其测试数据并在结束时清除所有内容。
到目前为止,这么好,但我有一个问题:存储过程会发生什么?该应用程序使用了很多,我不知道如何避免依赖它们。我怎样才能解决它们以测试应用程序而无需物理设置数据库以便测试使用它?