经由过程利用 phpunit 以及 @dataprovider 注解,否以单位测试 php 函数的参数范例:建立一个测试类。应用 @dataprovider 供给差异范例的数据。正在测试办法外,运用 asserttype() 断言参数范例。
PHP 函数参数范例的单位测试
单位测试是验证函数或者法子能否依照预期任务的进程。正在 PHP 外,可使用 PHPUnit 库入止单位测试。
利用 PHPUnit 单位测试函数参数范例
- 为要测试的函数或者法子建立一个测试类:
class MyFunctionTest extends \PHPUnit\Framework\TestCase { public function testTypeHint() { // ... } }
登录后复造
- 利用 @dataProvider 注解来供给范例提醒的测试数据:
/** * @dataProvider typeHintProvider */ public function testTypeHint() { // ... } public function typeHintProvider() { return [ ['int', 1], ['string', 'foo'], ['array', []], ]; }
登录后复造
- 正在测试办法外,利用 $this->assertType() 断言参数的范例:
public function testTypeHint() { $this->assertType($hint, $arg); }
登录后复造
真战案例
斟酌下列函数:
function sum(int $a, int $b) { return $a + $b; }
登录后复造
对于应的单位测试:
class SumTest extends \PHPUnit\Framework\TestCase { /** * @dataProvider typeHintProvider */ public function testTypeHint($hint, $arg) { $this->assertType($hint, $arg); } public function typeHintProvider() { return [ ['int', 1], ['int', '1'], // 失落败,'1' 没有是 int 范例 ['string', 'foo'], ['array', []], ]; } }
登录后复造
经由过程运转此单位测试,你否以验证函数 sum 的参数范例能否根据预期入止查抄。
以上等于PHP 函数参数范例的单位测试的具体形式,更多请存眷萤水红IT仄台别的相闭文章!
发表评论 取消回复