首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用supertest-as-promised和mocha测试promises时出现超时错误

使用supertest-as-promised和mocha测试promises时出现超时错误
EN

Stack Overflow用户
提问于 2015-08-29 00:16:50
回答 1查看 930关注 0票数 0

所以我试着测试一个函数,如下所示

代码语言:javascript
复制
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;

 }

因此,在上面的函数中,它工作正常,尽管我没有所有的代码片段,因为其他代码不是那么重要。我打印promise内容的部分按预期工作。因此,generateJwt()返回一个promise,我想测试这个promise的内容,以确保它与我登录到控制台的内容相同。但是它给我一个2000ms的超时错误,如下所示

代码语言:javascript
复制
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,仍然是同样的错误。所以我真的不知道发生了什么。我使用mocha、chai、sinon和supertest-as-promised来测试这一点。下面是我的测试套装

代码语言:javascript
复制
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();
    });
});

欢迎提出任何建议。谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-11-12 17:21:18

尝试使用以下代码更改mocha超时值:

代码语言:javascript
复制
this.timeout(40000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32275513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档