potherca / phpunit-testcase-traits
提供帮助函数的特质,用于在 PHPUnit 测试用例中使用。
Requires
- php: ~5.3 | ~7.0
- phpunit/phpunit: ~4.0 | ~5.0 | ~6.0
This package is auto-updated.
Last update: 2024-06-11 20:55:32 UTC
README
提供帮助函数的特质,用于在 PHPUnit 测试用例中使用。
简介
此项目包含各种特质,提供方便的方法,用于创建测试代码时出现的任务。
安装
composer require 'potherca/phpunit-testcase-traits'
使用
在类定义中添加一个所需的特质 use
语句。然后可以在定义的类中使用该特质的公共 API。
有关如何使用特质的完整详情,请参阅 PHP 手册中关于特质的部分。
PHP 5.3 兼容性
特质是在 PHP5.4 中引入的,因此对于旧版本(即 PHP5.3),需要另一种方式来加载特质的函数。提供了一个 traitShim
函数,可以从 魔术 __call
方法 使用。
这通过向每个要使用特质的(抽象基)测试用例添加以下代码来实现(1)
class ExampleTest extends \PHPUnit_Framework_TestCase { // .... final public function __call($name, array $parameters) { return \Potherca\PhpUnit\Shim\Util::traitShim($this, $name, $parameters); } // .... }
然后可以使用 所有 特质的公共 API。
为了帮助文本编辑器和 IDE 提供自动完成功能,可以在测试用例类中添加以下文档块
/** * @method array[] createDataProvider(array $subject) * @method \PHPUnit_Framework_MockObject_MockObject | \PHPUnit\Framework\MockObject\MockObject createObjectFromAbstractClass($className) * @method string getCompatibleExceptionName($exceptionName) * @method void setDataProviderMaximumKeyLength($length) * @method void setDataProviderSortByKey($sort) * @method void setNonPublicProperty($subject, $name, $value) */
(1) 也可以通过 src/Shim/function.traitShim.php
使用 composer 的自动加载器来加载。
可用的特质
-
CreateDataProviderTrait -- 创建数据提供者数组。
从给定的一维值数组创建一个键/值
对,该数组旨在从 TestCase 的数据提供者方法返回。 -
CreateObjectFromAbstractClassTrait -- 从抽象类创建对象实例。
创建一个具体对象,其方法可以被调用和测试。 -
GetCompatibleExceptionNameTrait -- 为 (new) PHP7 异常提供与 PHP5 兼容的
PHPUnit_Framework_Exception
名称。 -
SetNonPublicPropertyTrait -- 更改非公共类的属性值。
函数使用示例可在 example
目录中找到。所有示例都可以使用 phpunit
运行。只需使用 --config
标志指向所需的配置文件(对于特质为 example-php-phpunit.xml
,对于 PHP5.3 兼容的特质为 example-php53-phpunit.xml
)。
著作权
- 作者:由 Potherca 创建。
- 主页: packagist / git-repo
- 许可证:在 GPL-3.0 许可证 下授权(GNU 通用公共许可证 v3.0)