Jasmine:如何测试用户输入?
Jasmine: How to test a user input?
我编写了以下 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 标签文本变为 "You're old"。
我的问题是如何编写 Jasmine 规范来测试此功能?
您需要使用"Spy"对象来拦截"prompt"函数和return您自己的值。检查字幕文本后。代码可能看起来像 ...
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");
});
});
我编写了以下 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 标签文本变为 "You're old"。
我的问题是如何编写 Jasmine 规范来测试此功能?
您需要使用"Spy"对象来拦截"prompt"函数和return您自己的值。检查字幕文本后。代码可能看起来像 ...
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");
});
});