2017-01-26 5 views
0

Ich schrieb die folgende HTML-Datei:Jasmine: Wie man eine Benutzereingabe prüft?

<!DOCTYPE html> <html lang="en"> <head> 
    <meta charset="UTF-8"> 
    <title></title> </head> <body> 
    <h1> HELLO WORLD </h1> 
    <button type="button"> CLICK HERE</button> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script> 
     $('button').click(function() { 
      $('h1').text("Thank you"); 
      var ans = prompt("Please type your age"); 
      if (ans > 80) { 
       $('h1').text("You're old"); 
      } 
     }) 
    </script> </body> </html> 

ich das testen wollen, sobald der Benutzer auf die Schaltfläche klickt und gibt ein Alter, die älter sind als 80, die Seite als erwartet und die Änderungen h1-Tag-Text verhält sich zu " Du bist alt".

Meine Frage ist, wie man eine Jasmine-Spezifikation schreibt, um diese Funktion zu testen?

Antwort

1

Sie müssen "Spy" -Objekt verwenden, um die "prompt" -Funktion abzufangen und Ihren eigenen Wert zurückzugeben. Nach dem Überprüfen des Beschriftungstextes. Der Code kann wie folgt aussehen:

deascribe("test inline function:", function() { 
    it("caption should be 'too old' for age of more than 80", function() { 
    spyOn(window, 'prompt').and.returnValue(81); 
    $('button').click(); 
    expect($('h1').text()).toBe("You're old"); 
    }); 
});