【问题标题】:How to use Moles to stub entity framework stored procedure call?如何使用 Moles 存根实体框架存储过程调用?
【发布时间】:2010-08-12 14:05:22
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: entity-framework mocking pex-and-moles


    【解决方案1】:

    我正在寻找相同问题的答案。以下论坛主题为我清除了它: msdn forum

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

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

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

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

    HTH

    干杯

    【讨论】:

      猜你喜欢
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      相关资源
      最近更新 更多