经由过程利用 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仄台别的相闭文章!

发表评论 取消回复