加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 创建和解决量角器中的承诺

发布时间:2020-12-17 08:08:12 所属栏目:安全 来源:网络整理
导读:我正在写一个测试用例,用于在Angular应用程序的页面中添加商店信息,使用量角器,其中最初计数我已经拥有的商店数量,并且在测试块完成后,我预计计数增加一个,因此我通过遵循创建承诺07??000的链接来做到这一点 describe('myApp',function() { var items,
我正在写一个测试用例,用于在Angular应用程序的页面中添加商店信息,使用量角器,其中最初计数我已经拥有的商店数量,并且在测试块完成后,我预计计数增加一个,因此我通过遵循创建承诺07??000的链接来做到这一点
describe('myApp',function() {
  var items,startCount;

  var testPromise = function(){
    items = element.all(by.repeater('store in storelist'));
    var deferred = protractor.promise.defer();
    items.count().then(function(orgCount){
       startCount = orgCount;
       console.log('Start Count: '+ startCount); //prints correct value e.g,6
    },function(error){
       console.log(error);
    });
    return deferred.promise;
  };

it('should accept valid data for adding new store',function() {
   var cNum = null;
   testPromise().then(function(result){
      cNum = result;
      console.log('cNUm value: '+ cNum); //this value doesn't get printed in console
   });
   /* Code for adding test fields in store page */

   expect(items.count()).toBe(cNum+1);
 });
});

我预计在测试结束时,商店数量相同。 count()正在解决承诺,并且正确的存储计数值被打印在testPromise()中,但是当我调用testPromise()时,它将被阻塞,那么方法就不会在那个’then’块

最终结果说

Message:
 Expected 6 to be 1.
 Stacktrace:
  Error: Failed expectation

我也从这个链接http://selenium.googlecode.com/git/docs/api/javascript/class_webdriver_promise_Promise.html中的webdriver.promise.Promise()中进一步研究了一下,并尝试使用它来创建承诺并解决其价值,但不知道问题是什么。或者我收到错误消息说“预期6为NaN”或“预期6为1”我没有解决承诺或写“然后”正确阻止?在这个问题上,请欣赏一些见解/帮助。

创建

为了在量角器上创造一个承诺,你必须写:

var deferred = protractor.promise.defer();
var promise = deferred.promise;

回调

回调被异步调用。
您可以在成功注册一个(或多个)回调:

promise.then(function() {
   ...
});

你也可以注册一个(或多个)“on error”回调:

promise.then(null,function() {
   ...
});

这些注册可以链接:

promise.then(function() {
   ...
}).then(function() {
   ...
}).then(null,function() {
   ...
}).then(function() {

},function() {
   ...
}).then(onSuccess,onFailure);

解析度

成功

当成功解决承诺时,会调用“成功”回调:

deferred.fulfill(value);

失败

当承诺成功解决时,会调用“on failure”回调函数:

deferred.reject(new Error('a problem occurs'));

在你的代码

你错过了解决步骤。你必须履行诺言。

Webdriver.js documentation提供了更完整的参考

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读