6

在 Rails 项目中使用 Jasmine 时,为了保持 Jasmine 规范中的依赖关系一致,我想从 cdn 中提取 jquery,就像在真实页面上所做的那样。我尝试在我的 Jasmine.yml 文件中这样做:

helpers:
  - http://code.jquery.com/jquery-1.9.1.js

但是,这永远不会奏效,因为在查看 localhost:8888 的源代码时,我得到:

<script src="/__spec__/http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>

你如何正确地做到这一点?

4

3 回答 3

4

如https://github.com/pivotal/jasmine-gem/issues/135中的回答

我写了一个助手来加载外部 javascripts。这不是最好的解决方案(我更喜欢使用配置文件),但它对我有用。

var head = document.getElementsByTagName('head')[0];
var jQueryScript = document.createElement('script');
jQueryScript.setAttribute('type', 'text/javascript');
jQueryScript.setAttribute('src', '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js');
head.appendChild(jQueryScript);
于 2013-02-27T18:19:57.933 回答
1

@emrox 的答案是正确的,适用于 jasmine 2.0。

但是在jasmine 2.1.3中却没有。这是因为在运行测试时(我使用的是 Chutzpah)“http:”没有预先添加到 CDN 引用中。它在 jasmine 的 2.0 版中。

我实施的有效修复涉及以下代码行:

jQueryScript.setAttribute('src', ' http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js ');

希望这可以在他们决定降级到 2.0 之前帮助他们!

于 2015-07-08T21:03:14.687 回答
1

问题135做到了,因此您可以在 jasmine.yml 文件中列出 CDN 条目。例如

src_files:
  - http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js
  - http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js
  - lib/javascript/**/*.js
于 2016-01-13T01:24:24.680 回答