簡體   English   中英

在javascript中測試Promise處理不起作用

[英]Testing Promise handling in javascript is not working

在源代碼中,我正在對Promise的成功解析進行一些處理:

function saveChanges() {
  this.AppsSdkResource_
      .write(appssdkPackagePublishDetails)
      .then(
          function(response) {
            ... some processing ...
          }.bind(this));
}

在測試中,我為“ writePackagePublishDetails”設置了模擬行為,如下所示:

  var createSpyReturningPromise = function($q, name) {
    var defer = $q.defer();
    var spy = jasmine.createSpy(name).and.returnValue(defer.promise);
    spy.defer = defer;
    return spy;
  };
  appResource.write = createSpyReturningPromise($q, 'write');
  appResource.write.defer.resolve(
    dummyResponse);
  ctrl.saveChanges({$valid: true}); // Test the method of interest.
  mockClock.tick();
  .. do assertions for the "then" processing ...

但是我發現源文件中的“ then”代碼不會以對模擬嘲諷.tick()的方式執行,並且在調用該文件后,該語句之后的測試代碼首先被執行。

我究竟做錯了什么? 任何幫助深表感謝。

我必須做

scope.$digest();
done();

爭取解決的諾言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM