2016-07-21 4 views
0

I QUnit Tests für die folgende HTML-Datei Ich schreibe:JavaScript machen benutzerdefiniertes Objekt aus einer anderen Datei zum Testen

var PinPointService = { 
    doAjax: function(doAjax_params) { 
      //do some stuff 
    } 
    //a bunch more variables and functions 
} 

Der Test Ich bin in einer separaten Datei zu schreiben:

QUnit.test("test", function(assert) { 
    var array = []; 
    PinPointService.doAjax(array); 
    //assert some stuff 
}); 

Der Fehler erhalte ich:

PinPointService is not defined 

Meine Haupt js-Datei:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width"> 
    <title>Pinpoint Test</title> 
    <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.0.0.css"> 

    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script src="https://code.jquery.com/qunit/qunit-2.0.0.js"></script> 
    <script type="text/javascript" src="C:\path\to\jshamcrest.js"></script> 
    <script type="text/javascript" src="C:\path\to\core.js"></script> 
    <script type="text/javascript" src="C:\path\to\integration.js"></script> 
    <script type="text/javascript" src="C:\path\to\jsmockito-1.0.4.js"></script> 
    <script type="text/javascript" src=""></script> 
    <script src="C:\path\to\pinpoint.html"></script> 
    <script src="C:\path\to\pinpointTest.js"></script> 
</head> 
<body> 
    <div id="qunit"></div> 
    <div id="qunit-fixture"></div> 

</body> 
</html> 

Gibt es noch etwas, das ich neben dem Einschließen von pinpoint.html in meine js-Hauptdatei tun muss? Ich bin neu in JavaScript, daher denke ich, dass ich im Vergleich zu Java, mit dem ich mich sehr gut auskenne, einige Grundlagen der Funktionsweise der Sprache vermissen könnte.

Antwort

1

Achten Sie darauf, die Datei zu importieren, wo

QUnit.test("test", function(assert) { 
    var array = []; 
    PinPointService.doAjax(array); 
    //assert some stuff 
}); 

befindet, nachdem Sie PinPointService importiert.

So in der HTML-Datei sollte es so etwas wie

... 
<script src="C:\path\to\pinpointTest.js"></script> 
<script src="file_containing_the_code_above"></script> 
... 

die HTML-Seite gelesen, und von oben nach unten enthalten sein, so, wenn Sie nicht die pinpointTest noch Datei enthalten haben, können Sie nichts im Inneren verwenden können .

+0

Sorry, wenn mein ursprünglicher Beitrag nicht klar war. ist, wo var PinPointService = { doAjax: function (doAjax_params) {// einige Sachen tun } // ein paar mehr Variablen und Funktionen } befindet sich Sorry über diese Formatierung, ich weiß nicht, wie Sie es beheben. Ich habe diese Datei bereits vor meiner Testdatei eingefügt, aber sie ist aus irgendeinem Grund immer noch nicht definiert. –

+0

warten, aber das sollte nicht eine HTML-Datei sein. wenn Sie als Skript importieren, sollte es eine .js-Datei sein –

+0

Okay, ich verstehe. Es ist eine große Super-Datei (ich habe es nicht gemacht) Es enthält sowohl HTML als auch JavaScript, so dass es letztlich eine HTML-Datei ist, wenn ich richtig verstehe. –

Verwandte Themen