gpt4 book ai didi

javascript - 如何在捕获 Promise 时使 Node 单元测试失败?

转载 作者:搜寻专家 更新时间:2023-11-01 00:22:59 26 4
gpt4 key购买 nike

我正在使用 Node.js 进行一些单元测试,我想通过这样的测试:

doSomething()
.then(...)
.catch(ex => {
// I want to make sure the test fails here
});

我正在使用 Assert,所以我找到了 Assert.Fails .问题是 fails 期望 actualexpected,而我没有。 Node 文档没有说明需要它们,但是 Chai documentation ,它是 Node 兼容的,说它们是。

我应该如何通过 promise 的 catch 测试失败?

最佳答案

您可以使用专用的 spy 库,例如 Sinon ,或者您可以自己实现一个简单的 spy 程序。

function Spy(f) {
const self = function() {
self.called = true;
};
self.called = false;
return self;
}

spy 只是一个包装函数,它记录有关如何调用该函数的数据。

const catchHandler = ex => ...;
const catchSpy = Spy(catchHandler);

doSomething()
.then(...)
.catch(catchSpy)
.finally(() => {
assert.ok(catchSpy.called === false);
});

基本原理是监视 catch 回调,然后使用 finally clause你保证没有传唤 spy 的 promise 。

关于javascript - 如何在捕获 Promise 时使 Node 单元测试失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36208353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com