骨干设计 - 相关,模块化关系

时间:2015-02-12 13:21:21

标签: javascript unit-testing design-patterns backbone.js

我正在进行大规模的Backbone构建。然而我遇到的一个压力点是:

  • 模型A需要集合A
  • 集合A需要模型A

这是一个标准的循环依赖问题。 但是,大多数建议是设置一个管理这些(我目前使用)的顶级项目。这也使得单元测试非常困难,因为程序必须引入每个模型和集合才能管理它。

有没有更好的方法来管理这样的场景?

1 个答案:

答案 0 :(得分:0)

在这种情况下能够编写单元测试的一种方法是在你正在使用的模块加载框架中模拟依赖项的另一面。如果RequireJS是您的首选工具,我使用SquireJS取得了一些成功:

https://github.com/iammerrick/Squire.js/

那就是说,一旦它建立起来就是一个黄蜂窝。我们放弃了这种测试技术,因为很难推断实际测试的内容。

(旁白:不要试图成为一个混蛋,但通常像这样的循环依赖是设计问题的症状。模型必须知道集合的用例是什么?)