chadicus/test-helpers
最新稳定版本:v3.0.0
Composer 安装命令:
composer require chadicus/test-helpers
包简介
Classes designed to assist with PHPUnit testing
关键字:
README 文档
README
Requirements
Test Helpers requires PHP 7.3 (or later).
Composer
To add the library as a local, per-project dependency use Composer! Simply add a dependency on
chadicus/test-helpers to your project's composer.json file such as:
composer require --dev chadicus/test-helpers
NOTE: test-helpers should never be used in production. They are meant for testing enviornments only.
Documentation
PHP docs for the project can be found here.
Contact
Developers may be contacted at:
Project Build
With a checkout of the code get Composer in your PATH and run:
composer install
composer run test
composer run lint
\Chadicus\FunctionRegistry
Some internal PHP functions are documented to return certain values on failure. If you're a meticulous programmer you want to account for these return values in your code and respond to them accordingly.
class MyClass { public function doSomething() { $curl = curl_init(); if ($curl === false) { throw new \Exception('curl_init() failed'); } //do something with $curl ... } }
A meticulous programmer may also want to ensure their unit test code coverage is 100%.
One way to accomplish this is to use @codeCoverageIgnore annotations
class MyClass { public function doSomething() { $curl = curl_init(); if ($curl === false) { //@codeCoverageIgnoreStart throw new \Exception('curl_init() failed'); //@codeCoverageIgnoreEnd } //do something with $curl ... } }
This gets us the code coverage but the code isn't really tested.
The FunctionRegistry class alows you to mock an internal PHP function
class MyClassTest extends \PHPUnit_Framework_TestCase { protected function setUp() { // prepare the curl functions for mocking \Chadicus\FunctionRegistry::reset(__NAMESPACE__, array('curl')); } /** * @expectedExceptionMessage curl_init() failed */ public function testCurlInitFails() { \Chadicus\FunctionRegistry::set( __NAMESPACE__, 'curl_init', function () { return false; } ); $myClass = new MyClass(); // this will call our custom curl_init function $myClass->doSomething(); } }
For functions and constants, PHP will fall back to global functions or constants if a namespaced function or constant does not exist. It is because of this behavior that we can mock internal functions.
统计信息
- 总下载量: 25.15k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-04-30