当前位置: 首页 > 知识库问答 >
问题:

用Mocha和Chai-as-Promorted测试被拒绝promise的特定属性

沈实
2023-03-14

我试图用chai-as-promedied,Mocha和“should”方言测试一个被拒绝的承诺的细节。承诺由蓝鸟来实现。

这很好用:

it('it should be rejected when given bad credentials', function () {

   var promiseOfUsers = db.auth("bad", "credentials").getUsers();
   return promiseOfUsers.should.eventually.be.rejectedWith(Error)

});

该错误有一个“Status”属性。我想断言状态是401

这不起作用:

it('it should be rejected when given bad credentials', function () {

   var promiseOfUsers = db.auth("bad", "credentials").getUsers();
   return promiseOfUsers.should.eventually.be.rejectedWith(Error)
       .that.has.property('status')
       .that.equals(401)

});

似乎任何不引用“rejectedWith”或rejectedWith(Error)的断言尝试都将失败,并且只是将错误输出到控制台。

如何深究被拒的原因?

共有2个答案

薄兴昌
2023-03-14

null

return fooPromise.should.be.rejected.and.eventually.deep.equal({
   'x': 1,
   'y': 1,
   'z': 2
})

null

null

姜天宇
2023-03-14

我认为rejectedWith()处理程序存在一些问题。但你可以这样做:

 类似资料:
  • 我正在尝试编写一个jasmine测试,它有一个间谍, 是一个许诺列表。前几次承诺是拒绝,最后一次是成功。虽然测试顺利通过,但Node抱怨如下: 我的代码非常直接:我创建一个间谍,将它注入到我的代码中,调用我的代码,这将循环调用我的间谍直到它不拒绝,然后监视它被调用了5次。间谍是这样的: 被测试的代码在它的链中最后一个空的 来验证我没有引起那里的问题。AFICT,问题是Node看到我在执行 ,并认为

  • 问题内容: 有没有一种方法可以快速测试这些中间件: 我发现的唯一中间件测试是: 这与上面提供的简单中间件(类似于使用回调测试基本功能)很好地配合使用,但是对于更复杂的中间件,我无法使其正常工作。可以测试这种中间件吗? 问题答案: 这里有一个简单的设置,你可以使用,使用和: 从那里,您可以为模式匹配等添加更多详细的测试。由于仅使用,因此不必模拟整个对象(由Express创建),而只需使用带有属性的简

  • 目标 建立一个 lesson7 项目,在其中编写代码,我们暂时命名为 vendor 根据下面的步骤,最终的项目结构应该长这样 这次我们测试的对象是上文提到的 fibonacci 函数 此函数的定义为 int fibonacci(int n) 当 n === 0 时,返回 0;n === 1时,返回 1; n > 1 时,返回 fibonacci(n) === fibonacci(n-1) + fi

  • 我试图让我的头周围的promise,我得到了这个错误抱怨未处理的promise拒绝,但我确实有一个<代码>捕捉如果它被拒绝! 谁能帮帮我我做错了什么? 这是我的代码: 错误: (节点:200092)未处理的PromisejectionWarning:未处理的promise拒绝。这个错误要么是由于在没有catch块的情况下抛出异步函数的内部,要么是因为拒绝了没有使用catch块处理的promise。

  • 所以,我在测试一个依赖于事件发射器的组件。为此,我想出了一个解决方案,使用mocha+chai的承诺: 在控制台上,我得到了一个“unhandledPromiserEjectionWarning”,尽管reject函数正在被调用,因为它会立即显示消息“assertionError:Promise Error" (Node:25754)UnhandledPromiseRejectionWarning