php-mock / php-mock-mockery
使用Mockery模拟内置PHP函数(例如time())。此包依赖于PHP的命名空间回退策略。无需额外扩展。
1.4.1
2023-06-13 07:47 UTC
Requires
- php: >=5.6
- mockery/mockery: ^1
- php-mock/php-mock-integration: ^2.2.1
Requires (Dev)
- phpunit/phpunit: ^4|^5|^8
README
使用Mockery模拟PHP内置函数
此包将函数模拟库 PHP-Mock 与 Mockery 集成。
安装
使用 Composer
composer require --dev php-mock/php-mock-mockery
用法
PHPMockery::mock()
允许您构建一个可以配备 Mockery 预期的函数模拟。在您的测试之后,您需要通过调用 Mockery::close()
来禁用所有创建的函数模拟。
示例
namespace foo; use phpmock\mockery\PHPMockery; $mock = PHPMockery::mock(__NAMESPACE__, "time")->andReturn(3); assert (3 == time()); \Mockery::close();
限制
此库与底层 php-mock
具有相同的限制。
-
只有 无限定符 的函数调用在命名空间上下文中才能被模拟。例如,在命名空间
foo
中对time()
的调用是可以模拟的,而对\time()
的调用则不行。 -
模拟必须在测试类中对未限定的函数的第一次调用之前定义。这已在 Bug #68541 中记录。在大多数情况下,您可以忽略此限制。但如果您遇到此问题,可以在第一次调用之前调用
PHPMockery::define()
。这将定义一个无副作用的命名空间函数。
许可和作者
此项目是免费的,遵循WTFPL。该项目由Markus Malkusch负责 [email protected]。
捐赠
如果您喜欢这个项目,并且觉得慷慨,请在这里捐赠一些比特币:1335STSwu9hST4vcMRppEPgENMHD2rK