mikolajprzybysz / php-native-wrapper
包装每一个PHP原生方法的对象。
v1.0.0
2015-10-30 13:09 UTC
Requires (Dev)
- phpunit/phpunit: ^4.8.0
This package is not auto-updated.
Last update: 2024-09-18 18:11:53 UTC
README
此项目提供了一种类,可用于代理对常规函数的调用,因此使它们可以像其他方法调用一样进行模拟。
安装(包含在composer中)
"require": { "mikolajprzybysz/php-native-wrapper": "^1.0.0" }
如何使用
1.将Native
类作为依赖项添加到使用原生调用的类中
通过构造函数
class SampleClass { /** @var Native */ protected $native; public function __construct(Native $native){ $this->native = $native; } }
通过设置器
class SampleClass { /** @var Native */ protected $native; public function setNative(Native $native){ $this->native = $native; } }
2.每次需要运行原生函数时,通过$native实例调用它
class SampleClass { /** @var Native */ protected $native; public function sampleMethod(){ return $native->time(); } }
3.像其他类一样对其进行模拟
class SampleClassTest extends \PHPUnit_Framework_TestCase { public function testSampleMethod(){ $sampleTime = 123; $nativeMock = $this->getMock(Native::class); $nativeMock->expects($this->once())->method('time')->will($this->returnValue($sampleTime)); $testObject = new SampleClass($nativeMock); $result = $testObject->sampleMethod(); $this->assertEquals($sampleTime, $result); } }
单元测试
./vendor/bin/phpunit test/MockTest.php --bootstrap vendor/autoload.php
验收测试
./vendor/bin/phpunit test/MockTest.php --bootstrap vendor/autoload.php
不支持的功能
- extract
- sort和任何使用其参数的引用的方法