gpt4 book ai didi

Javascript 断言库 - chai 与 check-types

转载 作者:行者123 更新时间:2023-11-27 23:08:45 28 4
gpt4 key购买 nike

我在 NPM 中看到两个流行的库 - chai 和 check-types。我正在尝试了解他们的预期目的。

我知道chai用于单元测试TDD/BDD风格,并且有丰富的断言库。

另一方面,

check-types ( https://github.com/philbooth/check-types.js ) 只是一个断言库,用于检查参数的类型是否正确。看起来这并不适合用于单元测试。我假设这将在我的 Javascript 函数中使用,以确保传递到函数中的参数类型是预期的类型。

如果 chai 已经支持丰富的断言库,那么问题是检查类型库是多余的吗?或者它们有不同的用途?我也可以在代码中(在测试之外)使用 chai 来检查变量的类型是否正确?

最佳答案

正如您已经正确假设的那样,这里有两种不同的用例:

chai 是一个断言库,仅用于测试 - 因此它没有以任何方式优化以在普通应用程序中运行。它没有缩小版本,并且需要它为您带来大量用于不同可能性的测试样式的库代码(shouldexpectassert )。最重要的是:如果满足断言的条件,chai将立即抛出一个特殊的AssertionError,该错误旨在由流行的测试工具(如 业力或 摩卡

另一方面,

检查类型只是为了使类型和值检查在应用程序内变得更容易且更具可读性。在大多数情况下,它让您决定当断言不满足(不抛出)时要做什么。

结论:

当然,您可以在测试之外使用 chai,但我绝对不会推荐它,因为它只会增加构建的大小,并包含许多未使用的方法,并且您需要 try{} catch( ){} 阻止每个断言。

虽然您可以在测试中使用检查类型,但您需要自己为每个测试抛出AssertionErrors(这很烦人)。

所以:不,这两个库都不是多余的。您可以将 chai 视为一种库的超集,例如 check-types (chai 本身使用它自己的类型检测库,称为 type-detect (我是其中之一)维护者的;) )) 将它们用于测试工具中。

关于Javascript 断言库 - chai 与 check-types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36365538/

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