在承诺解决之前,防止量角器完成

Nix*_*Nix 12 protractor

我有一些异步的WebDriverJS处理被跳过,因为测试在解决之前就已经完成了.我如何让量角器等待?

例如:(这两项测试都会失败(提交潜在的机票)

  it('test promise ', function (done) {
      var d = protractor.promise.defer();
      d.fulfill(true)
      d.promise.then(function (item) {
          console.log("fulfill", item);
      });
      expect(d.promise)
          .toBe(false);
      console.log("test done");
  });

  it('test promise with timeout ', function (done) {
      var d = protractor.promise.defer();
      setTimeout(function () {
          console.log("fulfill");
          d.fulfill(true)
      }, 3000);

      d.promise.then(function (item) {
          console.log("fulfill", item);
      });
      expect(d.promise)
          .toBe(false);
      console.log("test done");
  });
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请与我们联系 ... ?

这将返回true ..如果你删除超时并只设置完成它将工作...

Leo*_*cci 11

量角器方面

对此的修复已于11天前合并

你可以把它与工作createFlow,但解决方案将是简单得多,只需拨打done()fulfill是这样的:

it('test promise with setTimeout ', function(done) {
  var d = protractor.promise.defer();
  setTimeout(function() {
    console.log("fulfill");
    d.fulfill('ok');
    done();
  }, 3000);
  expect(d).toBe('ok');
});
Run Code Online (Sandbox Code Playgroud)

目前在master分支上,所以期望这个在量角器> = 0.23.0中发货

Web应用程序端(提供信息)

量角器不知道如何等待setTimeout

但是知道如何等待$ timeout