gpt4 book ai didi

javascript - 强制使 Jasmine 测试失败

转载 作者:IT王子 更新时间:2023-10-29 02:59:45 25 4
gpt4 key购买 nike

如果我在测试中有永远不会到达的代码(例如 promise 序列的 fail 子句),我该如何强制测试失败?

我使用类似 expect(true).toBe(false); 的东西,但这并不漂亮。

另一种方法是等待测试超时,我想避免这种情况(因为它很慢)。

最佳答案

Jasmine 提供了一个全局方法 fail(),它可以在 spec block it() 中使用,也允许使用自定义错误消息:

it('should finish successfully', function (done) {
MyService.getNumber()
.success(function (number) {
expect(number).toBe(2);
done();
})
.fail(function (err) {
fail('Unwanted code branch');
});
});

这是内置的 Jasmine 功能,与我在下面提到的“错误”方法相比,它在任何地方都能正常工作。

更新前:

您可以从该代码分支抛出错误,它会立即使规范失败,您将能够提供自定义错误消息:

it('should finish successfully', function (done) {
MyService.getNumber()
.success(function (number) {
expect(number).toBe(2);
done();
})
.fail(function (err) {
throw new Error('Unwanted code branch');
});
});

但是你应该小心,如果你想从 Promise 成功处理程序 then() 中抛出错误,因为错误将被吞没在那里并且永远不会出现。此外,您还应该了解应用中可能存在的错误处理程序,它们可能会在您的应用中捕获此错误,因此它无法通过测试。

关于javascript - 强制使 Jasmine 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32251887/

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