Page 260 - AngularJS权威教程
P. 260
240 第 19 章 测试
.not().toBe('/home')
6. 跟内容交互
端到端测试特别强大,因为我们实际就在加载用户将要看到的页面,所以我们可以窥视他们
所能看到的结果,并且验证它看上去是对的,并且以我们预期的样子在运行。
我们可以选择元素,在输入框中输入值,点击按钮,校验内容是否出现在该出现的地方,遍
历循环器,等等。
要选择页面上的元素,使用element()方法。这个API带两个参数:
选择器—— jQuery HTML元素选择器;
标签——用于在浏览器或者终端输出的文本字符串。
element("form", "the signup form")
有了这个选中的元素,我们就可以执行方法来查询它在页面上的状态。要检测匹配给定
jQuery选择器的元素数目:
element("input", "input elements").count()
要点击一个元素(比如一个提交按钮),可以调用:
element("button", "submit button").click()
可以使用query()方法在给定jQuery选择器上执行一个方法。
// 选择页面上所有的链接
element("a", "all links").query(
// 所有这些链接
// 都会作为元素传给函数
function(elements, done) {
// 对每个元素做些想做的事
angular.forEach(elements, function(ele) {
expect(ele.attr('ng-click'))
.toBeDefined();
});
done(); // 告诉场景运行器我们做完了
});
可以查阅每个元素,在jQuery属性上设置不同的期望。
可以获取或者设置一个元素的值:
element("button", "submit button").val()
// 设置
element("button", "submit button").val("Enter")
可以获取或者设置文本:
// 获取一块HTML的文本内容
element("h1", "header").text()
// 设置
element("h1", "header").text("Header text")
可以获取或者设置元素的HTML:
// 获取元素的HTML