可以在不使用打字机islolator的情况下完成吗?我在网上找到了一些建议,例如仅通过元数据连接字符串传递,但是除了打字机以外,我什么都没有遇到,似乎确实允许使用模拟对象context,可以将其注入用于单元测试的服务。我是为打字机的$$付费,还是有其他选择?没有人能够创建与开源的类型相媲美的任何东西?

有帮助吗?

解决方案

我正在不嘲笑的情况下轻松地测试EF4。我所做的是使用来自的代码创建一个存储库接口 http://elegantcode.com/2009/12/15/Entity-framework-ef4-generic-repository-and-unit-of-work-work-prototype/ 作为一个基础,我创建了一个 InMemoryRepository<T> 使用的类 IRepository 界面。然后我替换了 IObjectSet<T>List<T> 班级的内部并相应地更改了检索方法。

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

其他提示

将您的LINQ2ENTITY查询放在接口后面,单位对其进行隔离测试,以针对真实的数据库进行测试。

使用查询接口的模拟为您的业务逻辑编写测试。不要让Linq流血您的业务逻辑!

不要使用RepositoryPattern!

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

我认为存储库模式不是问题的唯一答案(当然可以避免问题)

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top