Jasmine:如何测试用户输入?

时间:2017-01-26 23:04:58

标签: jasmine jasmine-jquery jasmine2.0

我写了以下html文件:

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

我想测试一下,一旦用户点击按钮并提供超过80岁的年龄,页面就会按预期运行,并且h1标签文本会更改为&#34;您已经老了&#34;。

我的问题是如何编写一个Jasmine规范来测试这个功能?

1 个答案:

答案 0 :(得分:1)

你需要使用&#34; Spy&#34;反对拦截&#34;提示&#34;功能并返回您自己的价值。检查标题文本后。代码可能看起来像......

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