通过使用 phpunit 和 @dataprovider 注解,可以单元测试 php 函数的参数类型:创建一个测试类。使用 @dataprovider 提供不同类型的数据。在测试方法中,使用 asserttype() 断言参数类型。

PHP 函数参数类型的单元测试
单元测试是验证函数或方法是否按照预期工作的过程。在 PHP 中,可以使用 PHPUnit 库进行单元测试。
使用 PHPUnit 单元测试函数参数类型
立即学习“PHP免费学习笔记(深入)”;
和网商城,手机平台(WAP2.0界面)v1.0测试版(带全站测试数据+图片)。 特色功能: 商品基本信息中编号条型码生成设计中,选择商品类型。 商品价格,支持单一价格,同时支持开启规格,可以分别设置价格。 商品属性,支持自定属性,不同的商品类型加载不同的商品属性,支持按属性检索浏览。 扩展属性:支持添加文字属性,图文属性等,具体功能请试用 赠送礼品:添加购买赠送的礼品(礼品后台管理)。 相关专题
- 为要测试的函数或方法创建一个测试类:
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 的参数类型是否按照预期进行检查。










