【问题标题】:How can you include a javascript files from a CDN in Jasmine?如何在 Jasmine 中包含来自 CDN 的 javascript 文件?
【发布时间】:2016-01-13 09:24:24
【问题描述】:

在 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>

你是怎么做到的?

【问题讨论】:

    标签: ruby-on-rails-3 jasmine


    【解决方案1】:

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

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

    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);
    

    【讨论】:

      【解决方案2】:

      @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 之前帮助他们!

      【讨论】:

        【解决方案3】:

        问题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
        

        【讨论】:

          猜你喜欢
          • 2012-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-16
          • 2017-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多