unit-testing - 模拟存储库与带有模拟数据的真实存储库

标签 unit-testing repository domain-driven-design

我一定是做错了什么。

我正在实现我的存储库,然后使用模拟数据对其进行测试。一切顺利。

现在我想测试我的域对象,所以我将它们指向模拟存储库。

但我发现我必须将“真实”存储库中的逻辑重新实现到模拟中,或者创建封装逻辑并与存储库(真实或模拟)交互的“辅助类”,然后我也必须测试那些

那么我错过了什么 - 为什么在我可以使用带有模拟数据的真实存储库时实现和测试模拟存储库?

编辑:为了澄清,通过“模拟数据”我没有访问实际的数据库。我有一个“数据库模拟层”,我可以在返回已知数据的真实存储库下插入。

最佳答案

也许你混合了你的抽象。也许您谈论的一些助手和逻辑应该在您的域对象中。您的存储库应该实现 CRUD 接口(interface)。所以你的域逻辑应该使用存储库中的 8 个操作。 Good retrieve 和 Bad retrieve(抛出异常)只是八个中的两个。一项测试是如何在域对象中处理 Bad 检索。其余测试应该测试良好的检索。

关于unit-testing - 模拟存储库与带有模拟数据的真实存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2866449/

相关文章:

unit-testing - 如何将unittest.dart包含在我的项目中?

design-patterns - 输入端口在整洁架构中的作用

domain-driven-design - 一个系统可以有几个核心域吗?

c# - MVVM:修改模型,如何正确更新ViewModel和View?

dns - 实体观点

java - java Mock 文件的建议(模拟 java.io.File)

java - 手工为java项目制作划分的主测试结构

java - 有没有办法通过IntelliJ IDEA中的方法查看所有路径?

java - 没有@Entity的 hibernate 存储库

mercurial - 无法通过 http 克隆 mercurial (hg) 存储库