1

我正在尝试存根对 db 的调用。基本思想是这样的一行代码:

Person person = (from p in this.Entities.FindPerson("Smith") select p).FirstOrDefault();

以我想要的方式返回一个对象,而不用去 db。FindPerson(string) 代表一个存储过程(以防万一)。

我试图覆盖 FindPerson 但我需要返回 ObjectResult。这是一个没有公共构造函数的密封类。我创建它的所有尝试都以调用 db.

4

1 回答 1

2

我一直在寻找同一个问题的答案。以下论坛帖子为我清除了它: msdn forum

基本上,他们说不要直接调用 EF,而是通过从业务层抽象数据层来使代码可测试。

您可以通过存储库模式或类似的方式执行此操作,然后使用依赖注入来注入模拟。

引自 Peli(微软员工,参与“Pex”计划):

痣应该是最后的解决方案。首选的方法是使用可测试的设计,即数据层和业务层之间的抽象等......

高温高压

干杯

于 2010-08-17T14:45:49.873 回答