【发布时间】:2019-01-18 02:40:15
【问题描述】:
我尝试遵循documentation 以使用assert.rejects 测试错误消息(我确实有v10 以上的节点)。
但它总是会过去,即使是一个荒谬的信息。我做错了什么?
it("should fail but it's not",
async ()=> {
let itemId = 'not an id'
assert.rejects(
await ListRepo.checkById(itemId),
{message: 'abracadabra'}
)
}
)
更新: 看来,如果我返回 assert.rejects,它会起作用。但我仍然不知道原因。
【问题讨论】:
-
Mocha 中的 Returning a
Promise(或使用done参数)向它发出测试是异步的信号,因此测试等待 Promise 解决/拒绝。这就是为什么当你返回它时它会起作用。否则,测试会立即运行并在您的assert.rejects实际返回结果之前结束。 -
await assert.rejects(..) -
你解决了吗?我也不懂文档。
-
是的,你只需要返回一个承诺。上面的 Nik 给出了解释。
标签: javascript promise mocha.js node-assert