【问题标题】:Unit testing and data returned from the database单元测试和从数据库返回的数据
【发布时间】:2014-08-06 20:22:55
【问题描述】:

我正在使用 EF 6.1,我将在 CRUD using this pattern. 中处理 CUD 我正在尝试确定处理 R(etrieve) 的最佳方法是什么。假设我的存储库方法返回一个集合:

 public IEnumerable<MyObject> GetAll()
    {
        return _context.MyObject.OrderBy(x => x.Name);
    }

我应该创建一个看起来与数据库返回的完全一样的测试对象吗? 如果是,如果数据库返回超过 200 项的列表怎么办?

我应该断言集合中存在一两个项目并继续前进吗?

有没有更好的方法来处理这种情况?

【问题讨论】:

  • 你想测试什么? GetAll() 方法?
  • @Mark 我敢说我应该测试我得到的数据是否正确;但是,这似乎是我在测试 EF 的功能,这似乎很愚蠢
  • 这是单元测试还是集成测试?
  • 这是单元测试。走完整个链条后,我将进行集成测试
  • @Robert 就像你之前说的:测试这段特定的代码相当愚蠢,因为你会测试你没有编写的功能。微软做到了。

标签: c# entity-framework unit-testing


【解决方案1】:

是的,您可以模拟 _context 的对象并从中获取项目

【讨论】:

  • 如果我要模拟这个对象,我会在那时测试什么。我知道 EF 在幕后工作。
  • 您将测试存储库中的代码:LINQ 查询。
猜你喜欢
  • 2021-03-03
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多