angularjs – 如何使用量角器向流控制队列添加承诺?

在我的测试中,我打电话和外部图书馆,在使用量角器运行一些ui测试之前将数据种子加入我们的后端.
'use strict'

var dataBuilder = require('data_builder.js');

describe('test',function () {
  var testData = {
    name: 'foo',title: 'bar',...
  };

  beforeEach(function () {
    //create test data on the backend
    dataBuilder.create(testData).then(function (id) {
      testData.id = id.id;
    });
  });



  it('test something',function () {
    ...
  });

因此,在it()实际完成之前,dataBuilder返回的承诺尚未解决.如何将dataBuilder返回的承诺添加到webDriver的流控制?

量角器暴露了量角器对象上的WebDriverJS承诺,因此您可以使用flow.await方法或创建新的承诺并使用flow.execute.

前者可以实现如下:

flow = protractor.promise.controlFlow()

flow.await(dataBuilder.create(testData)).then( function(id) {
    testData.id = id.id;
})

而您可以在这个blog post中看到后者的例子.

这可以在其功能本身完成,或者如果这是所有测试的共同之处,考虑将其放置在量角器配置的onPrepare函数中.

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...