gpt4 book ai didi

entity-framework - 在 3 层架构中对数据访问层进行单元测试

转载 作者:行者123 更新时间:2023-12-02 04:41:43 24 4
gpt4 key购买 nike

在典型的3层架构应用中,有:

  • 业务逻辑层
  • 数据访问层
  • 数据存储层

我正在考虑在不使用真实数据库的情况下测试 DAL(尤其是带有 Entity Framework 的 DAL)。但是在数据库中模拟复杂的外键约束有点困难。还有很多其他的东西。

我现在在想这是否是对 DAL 进行单元测试的正确方法?或者哪一层最受单元测试的影响?

我看到一些文章trying to mock the DbContext in the Entity Framework .用这种方法模拟外键关系似乎很困难。我想知道它是否接缝的正确位置。我们可以 mock 别的地方吗?例如模拟 ADO.NET 层?即供 ADO.NET 使用的内存中模拟数据库。

Mocking somewhere else

最佳答案

Thomas 的回答提供了一种测试数据访问层的好方法。但它没有提供替换它的方法。

一个更合理的 3 层架构方法是防止业务逻辑层直接与数据访问层中的类对话。跨层通信应该通过您定义的接口(interface)来完成。数据访问层可以知道业务逻辑层,但业务逻辑层应该只知道数据访问接口(interface),而不关心该接口(interface)是如何实现的。

然后您可以用虚假数据访问替换真实数据访问。看Bob大叔的演讲Architecture: The Lost Years .

关于entity-framework - 在 3 层架构中对数据访问层进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20716447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com