如何使用MVC在javascript应用程序中组织spec文件

时间:2012-05-25 13:31:52

标签: backbone.js jasmine

我想了解您对如何使用MVC(例如主干)在大型Web应用程序中组织文件/主导的意见。
我会做以下(*)。请告诉我你的意见。


(*)

js
js/models/myModel.js
js/collections/myCollection.js
js/views/myView.js
spec/model/myModel.spec.js
spec/collections/myCollection.spec.js
spec/views/myView.spec.js

2 个答案:

答案 0 :(得分:3)

这就是我传统上组织文件的方式。但是,我发现,对于更大的应用程序来说,保持一切有条理,命名独特,等等真的很难。一个新的'我一直在谈论它的方式是按功能而不是键入来组织我的文件。所以,例如:

js/feature1/someView.js
js/feature1/someController.js
js/feature1/someTemplate.html
js/feature1/someModel.js

但是,通常有全球性的东西"你需要的,比如"用户"或用户构建的位置集合。所以:

js/application/model/user.js
js/application/collection/location.js

我建议使用这种模式,因为这样您就可以使用功能集来处理功能集,打包和部署它们。它还降低了功能集之间发生依赖关系的可能性,因此,如果您要删除功能或使用全新代码更新功能,则只需替换“' stuff'而不是寻找每个文件。此外,在IDE中,它只会使您正在处理的文件更容易找到。

我的两分钱。

编辑:spec文件怎么样?

一些想法 - 你只需要选择一个对我来说最自然的人。

  1. 您可以按照相同的'功能文件夹'带有spec文件的模式。好处是所有规格都在一个地方。缺点是现在,就像你现在正在做的那样,你必须放置一个功能的文件。
  2. 您可以将规格放在'规范'功能文件夹的文件夹。好处是你现在拥有可以包装在一个zip文件中的实际包,而不会破坏其他工作。它也更容易找到直接相关的文件来编写测试 - 它们都在同一个父文件夹中。缺点是现在您的生产代码和测试代码位于同一个文件夹中,并将其(可能)发布到全世界。您可能最终会在某个时候将生产javascript编译为一个文件。所以我不确定这是一个很大的问题。
  3. 我的建议 - 如果这是一个大型应用程序,并且您认为您有几只手触摸文件,请留下类似于" package.json / yml / xml'文件夹中的文件。在那里,列出您需要进行测试的生产,规范和任何数据文件(您很可能会编写一个快速shell脚本来为您执行此操作)。然后写一个快速脚本来查看源文件夹中的' package.whateverYouChose'文件,获取测试文件,然后使用它构建单元测试页面。所以,让我们说你添加另一个包..运行' updateSpecRunner'或者您为脚本命名的任何内容,它会生成另一个SpecRunner.html文件(或者您命名运行规范的文件)。然后,您可以在浏览器中手动测试它,或使用phantomjs / rhino自动执行它。
  4. 这有意义吗?

答案 1 :(得分:1)

您可以找到如何将应用程序整理到此链接的好例子

Backbone Jasmine examples

它看起来或多或少与您的实施相似。

相关问题