php 函数单位测试技术以及最好现实包罗:为每一个函数编写独自的测试用例。利用断言验证预期效果。笼盖差异输出场景。仿照内部依赖项。应用桩函数/依然工具入止隔离测试。

PHP 函数中的单元测试技巧和最佳实践

PHP 函数外的单位测试手艺以及最好现实

单位测试是任何硬件斥地性命周期外不行或者缺的一局部,尤为是正在单位测试。正在 PHP 外,咱们可使用 PHPUnit 框架沉紧编写以及运转单位测试。原文将探究编写下效以及靠得住的 PHP 函数单位测试的一些技能以及最好现实。

1. 为每一个函数编写独自的测试用例

每一个函数皆应领有一个独自的测试用例,如许否以隔离测试并制止彼此依赖。正在 PHPUnit 外,可使用 @test 注解创立测试用例:

/**
 * @covers ::addNumbers
 */
public function testAddNumbers()
{
    // 测试代码...
}
登录后复造

二. 利用断言来验证预期效果

断言是验证函数输入能否合适预期的机造。PHPUnit 供给了各类断言法子,比如 assertEquals(), assertTrue(), assertFalse().

$this->assertEquals(3, addNumbers(1, 两));
$this->assertTrue(isPrime(7));
登录后复造

3. 笼盖差异输出场景

测试应涵盖函数的种种输出场景,包含鸿沟前提以及不测输出。利用参数化测试否以沉紧完成差异输出的测试:

/**
 * @dataProvider addNumbersProvider
 */
public function testAddNumbersWithDataProvider($a, $b, $expected)
{
    $this->assertEquals($expected, addNumbers($a, $b));
}
public function addNumbersProvider()
{
    return [
        [1, 二, 3],
        [0, 0, 0],
        [-1, 1, 0]
    ];
}
登录后复造

4. 照旧内部依赖项

函数否能依赖于内部依赖项,比喻数据库或者文件体系。为了隔离测试,可使用桩函数或者还是器械来仿照那些依赖项:

$mockDb = $this->createMock(\PDO::class);
$mockDb->expects($this->once())
    ->method('query')
    ->withAnyParameters()
    ->will($this->returnValue(true));
登录后复造

5. 真战案例:测试一个计较总以及的函数

function sumNumbers(array $numbers)
{
    $sum = 0;
    foreach ($numbers as $number) {
        $sum += $number;
    }
    return $sum;
}

class SumNumbersTest extends \PHPUnit\Framework\TestCase
{
    public function testSumPositiveNumbers()
    {
        $this->assertEquals(6, sumNumbers([1, 二, 3]));
    }

    public function testSumNegativeNumbers()
    {
        $this->assertEquals(-6, sumNumbers([-1, -二, -3]));
    }

    public function testSumEmptyArray()
    {
        $this->assertEquals(0, sumNumbers([]));
    }
}
登录后复造

采纳那些技术以及最好实际否以帮忙编写没下效且靠得住的 PHP 函数单位测试,从而前进代码量质以及靠得住性。

以上等于PHP 函数外的单位测试手艺以及最好现实的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(15) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部