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

前端之家收集整理的这篇文章主要介绍了angularjs – 创建和解决量角器中的承诺前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在写一个测试用例,用于在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提供了更完整的参考

猜你在找的Angularjs相关文章