【问题标题】:Jasmine - what connects a source to spec file?Jasmine - 什么将源连接到规范文件?
【发布时间】:2017-03-16 02:30:12
【问题描述】:

刚开始使用 Jasmine。我了解您将规范文件(如 Rspec)放在 javascripts 文件夹中,命名约定为 <file_name_to_be_tested>_spec.js

太好了!

所以我有spec/javascripts/orders_new_spec.js

我发现我可以使用上面的来测试以下文件中的任何一个:

app/assets/javascripts/orders/new.js
app/assets/javascripts/orders_new.js

但对于像我这样的文件目录确实有些复杂的人...我需要一种方法来区分两者...当然现在jasmine.yml 看起来像这样:

src_files:
  - assets/orders/new.js
  - assets/orders_new.js

但由于所有规范都有一个 yml 文件,因此它不能作为差异化因素。

有什么方法可以在规范文件本身中做到这一点吗?例如,

# /spec/javascripts/orders/new_spec.js
require 'assets/orders/new.js` # and ignore jasmine.yml
describe...

# /spec/javascripts/orders_new_spec.js
require 'assets/orders_new.js` # and ignore jasmine.yml
describe...

【问题讨论】:

    标签: javascript ruby-on-rails rspec jasmine


    【解决方案1】:

    正式的答案是否定的。当然,有一些方法可以绕过它。来自 Jasmine Github 模组:

    Jasmine(尤其是在浏览器中)在哪个规范文件测试哪个实现文件之间没有任何关系。如果您的文件子集无法与其他文件子集加载到同一页面中,您可能希望拥有多个 jasmine.yml 文件并在运行时使用 JASMINE_CONFIG_PATH 环境变量来选择正确的文件测试。这意味着您需要运行两个(或更多)jasmine:ci 任务来运行您的所有规范。

    另一种选择是重构/重做您的实现,以便可以同时将所有文件加载到浏览器中,并在您的规范中实例化底层对象。

    【讨论】:

      猜你喜欢
      • 2012-02-22
      • 2014-02-21
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      相关资源
      最近更新 更多