gpt4 book ai didi

javascript - Chai Framework API 不建议否定

转载 作者:行者123 更新时间:2023-12-03 04:02:45 24 4
gpt4 key购买 nike

所以,我正在阅读 Chai 框架的 API 指南,我发现每个 API 都有一个旁白:“但是最好验证该函数是否返回准确的输出,否则可能会导致意外结果”

在许多情况下,否定可用于验证某个数组或对象是否包含值/键值对。例如:

expect(1).to.not.be.oneOf([2, 3, 4]);// Not Recommended

为什么不推荐这样做,指南没有很好地解释这一点?

对于某些人来说,原因可能看起来微不足道且显而易见,但如果有人能对此有所说明,我将不胜感激。谢谢!

最佳答案

这是我想到的一个例子:假设你有一个有点幼稚的函数,给定一种颜色,它将返回该颜色的水果:

function fruitByColor(color) {
return {
red : 'strawberry',
green : 'apple',
purple : 'grape',
}[color];
}

假设您正在使用此断言:

expect(fruitByColor('red')).to.not.be.oneOf([ 'apple', 'grape' ]);

这按预期工作,因为颜色“红色”返回“草莓”

但是,让我们使用另一个断言,这次是针对未定义的颜色:

expect(fruitByColor('yellow')).to.not.be.oneOf([ 'apple', 'grape' ]);

这仍然通过了测试。从技术上讲,该断言是正确的,但您失去了传递现有颜色(返回有效结果)和未定义颜色之间的区别。

关于javascript - Chai Framework API 不建议否定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44654346/

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