dms/phpunit-arraysubset-asserts

此包提供了ArraySubset和相关断言,这些断言在PHPUnit 8中被弃用

v0.5.0 2023-06-02 17:33 UTC

README

在PHPUnit 8中,函数 assertArraySubset 已被 弃用。此函数通常被误解,因此被移除,但它仍然是一个非常有用的工具,因此在此进行了提取。

免责声明: 此处包含的初始版本是从phpunit复制的,并且高度基于Márcio Almada的原始工作。

安装

只需使用Composer导入它即可使用它

composer require --dev dms/phpunit-arraysubset-asserts

💡 此包可以在PHP 5.4到当前版本以及与PHPUnit 4.8.36/5.7.21到当前版本一起安全地要求。

当PHPUnit assertArraySubset() 方法原生可用且未被弃用(PHPUnit 4.x - 7.x)时,将使用PHPUnit的原生功能。对于PHPUnit 8及以上版本,扩展将启动并polyfill从PHPUnit中移除的功能。

使用

您有两种方式在使用此包的类中:直接作为静态调用或作为trait,如果您希望保持现有引用正常工作。

使用trait的示例

<?php

namespace Your\Package\Tests;

use DMS\PHPUnitExtensions\ArraySubset\ArraySubsetAsserts;
use PHPUnit\Framework\TestCase;

final class ExampleTest extends TestCase
{
    use ArraySubsetAsserts;

    public function testWithTrait(): void
    {
        $expectedSubset = ['bar' => 0];

        $content = ['bar' => '0'];

        self::assertArraySubset($expectedSubset, $content, true);

        $content = ['foo' => '1'];

        $this->assertArraySubset($expectedSubset, $content, true);
    }
}

静态类方法示例

<?php

namespace Your\Package\Tests;

use DMS\PHPUnitExtensions\ArraySubset\Assert;
use PHPUnit\Framework\TestCase;

final class ExampleTest extends TestCase
{
    public function testWithDirectCall(): void
    {
        $expectedSubset = ['bar' => 0];

        $content = ['bar' => '0'];

        Assert::assertArraySubset($expectedSubset, $content, true);
    }
}