2013-02-18 3 views
5

Wenn ich Jasmine in einem Rails-Projekt verwende, um die Abhängigkeiten in meinen Jasmine-Spezifikationen konsistent zu halten, möchte ich jQuery aus einer cdn ziehen, wie es auf der realen Seite geschieht. Ich versuche, das zu tun, wie so, in meiner Jasmine.yml Datei:Wie können Sie eine Javascript-Datei von einem CDN in Jasmine einbinden?

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

Dies ist jedoch nie funktioniert, als wenn die Quelle der localhost viewing: 8888 erhalte ich:

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

Wie hast du das richtig?

Antwort

4

als beantwortet in https://github.com/pivotal/jasmine-gem/issues/135

schrieb ich einen Helfer externen JavaScripts zu laden. Es ist nicht die beste Lösung (ich würde die Verwendung der Konfigurationsdatei bevorzugen), aber es funktioniert für mich.

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

@ emrox die Antwort ist korrekt und funktioniert für Jasmin 2.0.

Jedoch in Jasmin 2.1.3 es nicht. Dies ist aufgrund der Tatsache, dass, wenn die Tests ausgeführt werden (ich benutze Chutzpah) "http:" ist nicht vor der CDN Referenz. Es ist in Version 2.0 von Jasmin.

Das Update ich ausgeführt, dass die folgende Zeile des Codes beteiligt war:

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

Hoffentlich hilft das jemand, bevor sie sich entscheiden, auf 2.0 herunterzustufen!

0

Problem 135 gemacht, damit Sie CDN-Einträge in Ihrer Jasmine.yml-Datei auflisten können. z.B.

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