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
   255   256   257   258   259   260   261   262   263   264   265