我一直试图在家中开发时更加注重TDD和DDD。
我不明白的一件事是你为什么要创建一个假的存储库来测试?我还没有真正研究过,但测试的想法肯定是为了帮助解耦你的代码(提供更多的灵活性),减少所需的代码并减少错误的数量。
有人可以填写我的愚蠢大脑,为什么有些人喜欢测试假存储库?我认为对真实数据库进行测试是创建假数据库的一个更好的选择,因为那时你知道它对你的真实世界数据存储有效。
答案 0 :(得分:21)
假存储库允许您仅测试应用程序代码。
假存储库意味着自动化测试可以轻松地在存储库中设置已知状态。
假存储库将比真实数据库快几个数量级。
假存储库不能替代包含数据库的系统测试。
答案 1 :(得分:7)
正如我所看到的那样,为什么要对伪造的资源进行测试有两个非常重要的原因:
唯一的缺点是显而易见的:
......这就是集成测试的用途。
答案 2 :(得分:2)
我赞成了长颈鹿的回答,但想补充几点:
每个开发人员都可以使用模拟/假冒 她/他自己的单位的存储库 测试不干扰 测试由其他开发人员完成 在同一个项目上。
使用本地模拟/假存储库 强化数据的用户 抽象层,这很好 设计实践。
作为一个例子,我使用了像HashMap
这样简单的东西来实现数据访问层的模拟。这使得每个单元测试的极其变得容易,以确保为其目的存在确切的必要条件,并验证是否在数据访问层上进行了正确的调用。