首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用chai-as-promised、拒绝的承诺和错误消息进行测试?

如何使用chai-as-promised、拒绝的承诺和错误消息进行测试?
EN

Stack Overflow用户
提问于 2016-04-16 04:18:01
回答 1查看 87关注 0票数 0

我正在尝试检查被拒绝的promise上的错误消息,如果我在测试中将消息字符串弄错了,它仍然可以通过。

代码语言:javascript
复制
MyService.doSomething({ id: 12345 }).should.eventually.be.rejectedWith(TypeError, 'no attr foo defined2');



  svc.doSomething = function(thing){
    var def = $q.defer();

    if ( !thing.foo ) {
        def.reject(new Error('no attr foo defined'));
    } else {
        def.resolve(thing);
    }

    return def.promise;
  };

更新,我的测试似乎不能正常工作。当我返回时,它会超时:

代码语言:javascript
复制
  it.only('should error', function(){
    // todo this should fail but it just times out
    return MyService.doSomething({ id: 12345 }).should.eventually.be.rejectedWith(TypeError, 'no attr foo defined2');
  });







  svc.doSomething = function(thing){
    var def = $q.defer();

    if ( !thing.foo ) {
        def.reject(new Error('no attr foo defined'));
    } else {
        def.resolve(thing);
    }

    return def.promise;
  };

下面是错误:

代码语言:javascript
复制
Error: timeout of 4000ms exceeded. Ensure the done() callback is being called in this test.
EN

回答 1

Stack Overflow用户

发布于 2016-04-16 04:23:34

您忘记了调用之前的最终结果和返回结果。

代码语言:javascript
复制
return MyService.doSomething({ id: 12345 }).should.eventually.be.rejectedWith...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36656125

复制
相关文章

相似问题

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