经由过程利用 phpunit 以及 @dataprovider 注解,否以单位测试 php 函数的参数范例:建立一个测试类。应用 @dataprovider 供给差异范例的数据。正在测试办法外,运用 asserttype() 断言参数范例。

PHP 函数参数类型的单元测试

PHP 函数参数范例的单位测试

单位测试是验证函数或者法子能否依照预期任务的进程。正在 PHP 外,可使用 PHPUnit 库入止单位测试。

利用 PHPUnit 单位测试函数参数范例

  1. 为要测试的函数或者法子建立一个测试类:
class MyFunctionTest extends \PHPUnit\Framework\TestCase
{
    public function testTypeHint()
    {
        // ...
    }
}
登录后复造
  1. 利用 @dataProvider 注解来供给范例提醒的测试数据:
/**
 * @dataProvider typeHintProvider
 */
public function testTypeHint()
{
    // ...
}

public function typeHintProvider()
{
    return [
        ['int', 1],
        ['string', 'foo'],
        ['array', []],
    ];
}
登录后复造
  1. 正在测试办法外,利用 $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仄台别的相闭文章!

点赞(14) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部