我在我的应用程序中使用Entity Framework Code-First,我将对一些服务进行单元测试。我有所有构建的存储库和工作单元模式,我正在试图找出为我的测试伪造这些对象的最佳方法。我当然可以为我的测试创建完全虚假的存储库和工作单元类,但我想避免重新实现我的DbContext的许多功能(例如,管理相关对象,更改跟踪等)。假货。
我真的想要DbContext所做的一切,除了:
这可能吗?
答案 0 :(得分:0)
只要存储库实现适当的接口,您的存储库的伪造就不需要重新实现您的上下文。它们最多只需要包含其关联实体类型的内存列表。或者使用模拟框架(如Moq)来创建虚假实现。
答案 1 :(得分:0)
您可以使用SQL Server Compact Edition数据库进行单元/集成测试。您可以通过数据库初始化程序创建CE数据库。该数据库将具有与您的数据库类似的结构,EF API无需任何修改即可运行。
但是,如果您使用过存储过程或数据库特定的功能,那么您将无法测试这些功能。