2016-03-24 7 views
0

Hallo Ich bin sehr neu in JavaScript Unit Testing, und ich bin dabei zu versuchen zu sehen, ob es möglich wäre, einige vorhandene JavaScript zu testen.QUnit Testing: Enthüllung ist keine Funktion

Ich habe meinen Test-Zweitplatzierer, aber ich empfange diesen Fehler in Bezug auf die Funktion.

Test Runner das Markup es nur etwas für den Moment zu testen:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>QUnit Main Test Suite</title> 
    <link rel="stylesheet" href="../qunit.css">  
    <script src="../sinon-1.17.3.js"></script> 
    <script src="../jquery-2.2.2.min.js"></script> 
    <script src="../qunit.js"></script> 
    <script src="PreferenceControl.js"></script> 
    <script src="tests.js"></script>   
</head> 
<body> 
    <div id='MainContentDiv'> 
     <div id='PreferenceType'>PreferenceFrequency</div> 
     <div id='PreferenceId'>1</div> 
     <table id='RadioButtonList'> 
      <tbody> 
      <tr> 
       <td> 
        <span id='1'> 
         <input id='RadioButtonList_0' type='radio' name='RadioButtonList' value='1'> 
        </span> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <span id='2'> 
         <input id='RadioButtonList_1' type='radio' name='RadioButtonList' value='2' checked='checked'> 
        </span> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <span id='3'> 
         <input id='RadioButtonList_2' type='radio' name='RadioButtonList' value='3'> 
        </span> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <span id='4'> 
         <input id='RadioButtonList_3' type='radio' name='RadioButtonList' value='4'> 
        </span> 
       </td> 
      </tr> 
      </tbody> 
     </table> 
     <input type="submit" name="SaveButton" id="SaveButton" /> 
     </div> 
     <div id="CheckBoxList"></div> 
    <div id="qunit"></div> 
    <div id="qunit-fixture">test markup</div> 
</body> 

Unten ist der Abschnitt es bricht auf:

this.loaderContainer = $('#AjaxLoader', this.mainContentDiv); 

if (this.loaderContainer.length == 0) { 
    this.loaderContainer = $("<div id=\"AjaxLoader\" class=\"full-width columns alpha omega\">" + 
           "<span class=\"loader\"><img src=\"/Common/CSS/Core/Images/Throbbers/Ajax-Loader.gif\" style=\"display: none\" ></span>" + 
          "</div>"); 

    this.loaderContainer.appendTo(this.mainContentDiv); 
} 

this.loaderContainer.reveal({ 
    animation: 'throbber' 
}); 

Dies sind die Ergebnisse meiner Pause:

enter image description here

Ich bin mir nicht sicher, wie das zu beheben ist, oder ob es möglich ist, wie ich es gemacht habe? Jede Hilfe würde sehr geschätzt werden, danke im Voraus.

+0

Warum sollte "offenbaren" eine Funktion auf einem jQuery-Objekt sein? Ihre Frage ist ohne diese Informationen unvollständig. Gibt es ein Plugin, das du benutzen willst? Hast du vergessen, http://zurb.com/playground/reveal-modal-plugin einzuschließen? –

+0

Das ist der Punkt, ist es nicht. Mir fehlte ein Hinweis auf das Plugin. Ich denke nicht besonders, dass diese Frage unvollständig ist, da jemand, der sich mit diesem Plugin auskennt, erkennen würde, dass ich versuche, es ohne Referenz zu nennen. Sie sagen, es ist unvollständig ohne diese Informationen, aber das ist die Information, die ich brauchte, um es zu beheben. – ICTech

+0

Das Vergessen der Verknüpfung mit einer Datei ist einer der Gründe, warum eine Frage geschlossen/gelöscht werden sollte. Siehe http://meta.stackoverflow.com/questions/322738/should-questions-resolved-by-missing-javascript-files-be-closed –

Antwort

0

Dies liegt an einem verpassten Verweis auf eine andere Bibliothek, die sich mit der .reveal-Methode befasst.

0

jQuery hat keine reveal() Methode. Ich bin mir nicht sicher, was Sie in dieser Codezeile versuchen, aber vielleicht suchen Sie nach der show() Methode mit einer easing option specified?

Der Fehler, den Sie von QUnit sehen, ist, dass die reveal()-Funktion nicht existiert (weil es nicht Teil von jQuery ist). Wenn Sie ein Plugin verwenden, das eine reveal()-Funktion für Sie bereitstellt, müssen Sie diese JS-Datei in Ihre Testumgebung (das HTML-Dokument) aufnehmen.

+0

Vielleicht http://zurb.com/playground/reveal-modal-plugin –

+0

Es ist von einem anderen Plugin. Die Codezeile zeigt dieses Element mit einer Animation an und wird daher mit einem Animationsparam gesetzt. Diese Frage ist jetzt schon über einen Monat alt, vielleicht hätte ich sie selbst beantworten sollen. – ICTech

+0

@ICTech Ja, es wäre höflich, den Beitrag entweder zu löschen oder selbst zu beantworten, sonst verschwenden andere ihre Zeit damit, Ihnen zu helfen. –