hypothesis
version 6.122.3
Hypothesis 是一系列测试库,可让您编写由示例源参数化的测试。然后,假设实现会生成简单且易于理解的示例,这些示例会使您的测试失败。通过让软件自动执行无聊的部分并按照比人类更高的标准进行测试,这可以简化测试的编写,同时使测试变得更加强大,从而使您能够专注于更高级别的测试逻辑。
这种测试通常称为“基于属性的测试”,该概念最广为人知的实现是 Haskell 库 QuickCheck,但假设与 QuickCheck 显着不同,并且旨在惯用且轻松地适应您所使用的现有测试风格。已经习惯了,但完全不熟悉 Haskell 或函数式编程。
Python 的假设是最初的实现,也是目前唯一完全准备好投入生产并积极维护的实现。
Hypothesis 的核心思想是与语言无关的,原则上它适用于任何语言。我们有兴趣开发和支持多种语言的实现,但目前缺乏这样做的资源,因此我们的移植工作主要是原型。
其他语言的 Hypothesis 的两个原型实现是:
此外,还有一个将假设、猜想的核心引擎移植到 Rust 的版本。它的功能并不完整,但从长远来看,我们希望将大部分现有功能转移到 Rust 并在其之上重建 Python 的假设,从而大大减少向其他语言的移植工作。
任何或所有这些都可以通过相对较少的努力(不超过几个月的全职工作)转变为成熟的实施,但是除了初始工作之外,这还需要有人准备为他们提供或资助持续的维护工作为了能够生存。