我一直试图推动我mentallity当发展主要面向更多和一位DDD。

有一件事我不明白的是为什么你会创造一个假的储存库,以测试对?我还没有真正看到它了,但肯定的想法的测试是帮助解你的代码(给你更多的灵活),修剪下来码的需要和降低数量的错误。

因此有人可以填写在我的愚蠢的脑子,为什么有些人喜欢来测试假的仓库?我会想到测试对一个真正的数据库是一个更好的替代创造一个假的因为你知道,它的工作对你的现实世界中数据存储。

有帮助吗?

解决方案

假存储库允许您仅测试应用程序代码。

假存储库意味着自动化测试可以轻松地在存储库中设置已知状态。

假存储库将比真实数据库快几个数量级。

假存储库不能替代包含数据库的系统测试。

其他提示

因为我看到它有两个很大的原因,为什么你的测试对伪造资源:

  • 它使得单元的测试 速度更快 当你有一个人嘲笑起来反对缓慢I/O或数据库。这可不是看起来像什么,如果你有一个小测试,但是当你到+500个单元的测试,它开始发挥作用。在这样的数量,测试运行对该数据库将开始采取几秒钟做的。程序员都是懒惰和想要的东西去快,所以如果运行一个试验套房的时间超过10秒钟然后你会不会高兴做TDD了。
  • 它强制执行你想想你的代码设计,以使变革更加容易。设计合同的依赖注射也变得更容易做,如果你已经做了实现反对的接口或抽象的课程。如果做得对这种设计,使其更易于遵守,以改变你的代码。

唯一的缺陷是显而易见的一种:

  • 你怎么能肯定的它真正起作用?

...这是什么 一体化试验 是的。

我投赞成票的长颈鹿的答案,但是想添加一两点:

  • 每个开发者可以使用一个模型/假的 存储库,为他/她自己的单元 测试没有干扰 测试通过其他开发商 在同一项目。

  • 使用当地模型/假库 加强了用户的数据 抽象层,这是很好的 设计的做法。

作为一个例子,我已经使用简单的东西 HashMap 执行一个模拟的数据访问层。这使得它 非常 容易对每个单元的测试,以确保完全必要的条件存在于它的目的,并验证的权利呼吁在访问数据层。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top