簡體   English   中英

測試承諾的超級測試承諾和摩卡時超時錯誤

[英]timeout error when testing promises with supertest-as-promised and mocha

所以我試圖測試如下功能

function generateJwt(){
    var deferred = Q.defer();
deferred.resolve({
            message: 'user created',
            token: signedJwt,
            userId: user.userId
          });
deferred.promise.then(function success(result) {
    console.log(result)
  }, function failed(result) {
    console.log(result)
  });
  return deferred.promise;

 }

所以在上面的函數中,它正常工作,盡管我沒有所有的代碼,因為其他代碼並不那么重要。 我在其中打印承諾內容的部分按預期工作。 因此,generateJwt()返回一個promise,我想測試該promise的內容,以確保它與我登錄到控制台的內容相同。 但這給了我2000ms超時錯誤,如下所示

Auth Service Unit Tests:  #POST - generatePingJwt should return a promise with message user exists with user scope Admin:
 Error: timeout of 2000ms exceeded
  at null.<anonymous> (/Users/z001hm0/Documents/api_portal/developer-portal/node_modules/grunt-mocha-test/node_modules/mocha/lib/runnable.js:139:19)
  at Timer.listOnTimeout (timers.js:110:15)

我什至將超時增加到15000ms,仍然是相同的錯誤。 所以我真的不知道發生了什么。 我使用了摩卡咖啡,柴,西農和承諾的超級測試來對此進行測試。 下面是我的測試服

var chai = require('chai');
var requestPromise = require("supertest-as-promised");
var should = require('chai').should();

it("should return a promise with message user exists with user scope TM", function (done) {

  sinon.stub(dbModels.User, 'findOne').resolves({
    scope: 'TM',
    userId: 30001,
    save: save
  });
  save.resolves(true);

  requestPromise(app)
    .post(baseRoute + 'ping')
    .then(function (res) {
      console.log('promise result is ');
      console.log(res);
      done();
    });
});

請任何建議,歡迎。 謝謝

嘗試使用以下代碼更改Mocha超時值:

this.timeout(40000);

暫無
暫無

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

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