7

不使用 TypeMock Islolator 可以吗?我在网上找到了一些建议,例如传入仅元数据的连接字符串,但是除了 TypeMock 之外我遇到的任何东西似乎都没有真正允许可以注入服务以进行单元测试的模拟 ObjectContext。我应该为 TypeMock 支付 $$,还是有其他选择?没有人设法创建与 TypeMock 类似的开源软件吗?

4

4 回答 4

4

我在没有模拟的情况下轻松地对 EF4 进行单元测试。我所做的是使用来自http://elegantcode.com/2009/12/15/entity-framework-ef4-generic-repository-and-unit-of-work-prototype/的代码作为基础创建一个存储库接口我然后创建了一个InMemoryRepository<T>使用该IRepository接口的类。然后我将 替换为类IObjectSet<T>List<T>内部并相应地更改了检索方法。

因此,如果您需要进行单元测试,请传入 InMemoryRepository 而不是 DataRepository。

于 2010-05-21T17:57:32.650 回答
3

将您的 Linq2Entity 查询放在接口后面,针对真实数据库对其进行单元测试。

为您的查询接口使用 mock 为您的业务逻辑编写测试。不要让 Linq 渗入您的业务逻辑!

不要使用 RepositoryPattern!

于 2010-11-17T22:23:58.347 回答
1

将 ObjectContext 包装在代理类中。然后将其注入您的课程。

于 2010-04-24T04:05:48.577 回答
0

我不认为存储库模式是问题的唯一答案(它确实避免了这个问题)

我喜欢这个答案 - 我认为更适合将测试引入现有代码库 为 ObjectContext 创建接口

于 2012-07-10T00:04:23.630 回答