Muh*_*man 70 linq unit-testing entity-framework
我想测试使用Entity Framework构建的实体.我担心的是使用实体框架意味着直接使用数据源.那么任何想法如何单元测试基于Entity Framework的组件?
Han*_*ing 51
对于Enity Framework 4,这看起来很有希望:可测试性和实体框架4.0
一种廉价的方法是设置一个与真实数据库结构相同的数据库文件,并将单元测试配置中的连接字符串设置为指向该文件.数据库不需要拥有真实数据库的所有表; 只是单元测试需要的.
缺点是您需要管理数据库的状态,以便单元测试在运行期间和运行之间不会相互影响.
我知道这种方法在真实和单元测试数据库使用SQL Express时都有效,但我不知道在SqlExpress数据库中存根用于完整的SQL数据库.
我意识到这是技术上的集成测试,但它可能比重构代码或学习模拟框架更便宜.
实例连接字符串示例:
<add name="DrinksEntities" 
     connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient
     ;provider connection string="Data Source=localhost\sqlexpress;Initial Catalog=Drinks2;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework"" 
     providerName="System.Data.EntityClient" />
示例单元测试连接字符串:
<add name="DrinksEntities" 
     connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient
     ;provider connection string="Data Source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\Inventory.mdf;Integrated Security=True;user instance=True;MultipleActiveResultSets=True;Application Name=EntityFramework"" 
     providerName="System.Data.EntityClient" />
| 归档时间: | 
 | 
| 查看次数: | 26802 次 | 
| 最近记录: |