hoa/praspel

此包已被 废弃 并不再维护。未建议替代包。

Hoa\Praspel 库。

1.17.01.10 2017-01-10 13:08 UTC

README

Hoa

Build status Code coverage Packagist License

Hoa 是一套 模块化可扩展结构化 的 PHP 库。
此外,Hoa 旨在成为工业界和研究界之间的桥梁。

Hoa\Praspel

Help on IRC Help on Gitter Documentation Board

Praspel 和现实域

Praspel (PHP 现实注释和规范语言) 是一种用于 PHP 的 形式化规范语言。它基于设计-by-Contract 范式,并使用前件、后件、不变量等。规范以 PHP 代码的注释形式编写。Praspel 用于手动、自动或 自动软件验证和验证

这种语言受到 JML 的启发,但区别在于指定数据的方式。PHP 是动态和弱类型。为了指定数据,Praspel 依赖于 现实域:允许验证和生成数据的结构,能够将它们组合起来表示更 复杂的数据。现实域在 Hoa\Realdom 中实现。

数据生成器

可以使用契约自动生成单元测试。一个测试由 2 个部分组成:测试数据和预言。测试数据至关重要,因为它必须尽可能地反映“现实”数据,并且能够在极限情况下生成数据也非常重要。现实域通过能够生成整数、实数、字符串(基于正则表达式或语法等)、数组(基于约束求解器)或对象,为 PHP 语言类型提供了解决方案。因此,可以将这些现实域组合起来生成更复杂的数据(如日期、对象模型等)。

契约覆盖率标准

契约语言可以评估以验证和验证程序操作的数据。另一方面,我们有能够从契约的一部分自动生成测试数据的算法。为了确保契约是否被正确覆盖,我们定义了几个契约覆盖率标准。

因此,我们可以生成满足这些契约覆盖率标准的单元测试套件,从而确保生成的单元测试套件反映了契约中表达的所有行为。

研究论文

这种语言是几个研究论文、期刊和博士论文的结果。

了解更多.

安装

使用Composer,要将此库包含到依赖中,您需要要求hoa/praspel

$ composer require hoa/praspel '~1.0'

有关更多安装说明,请参阅源页面

测试

在运行测试套件之前,必须安装开发依赖项

$ composer install

然后,要运行所有测试套件

$ vendor/bin/hoa test:run

有关更多信息,请参阅贡献指南

文档

《Hoa\Praspel》的黑客手册包含了有关如何使用此库及其工作原理的详细信息。

要本地生成文档,请执行以下命令

$ composer require --dev hoa/devtools
$ vendor/bin/hoa devtools:documentation --open

更多文档可以在项目网站上找到: hoa-project.net

获取帮助

获取帮助主要有两种方式

贡献

你想贡献吗?谢谢!一个详细的贡献指南解释了你需要知道的一切。

许可

Hoa采用新BSD许可证(BSD-3-Clause)。请参阅LICENSE以获取详细信息。

相关项目

以下项目正在使用此库