📜  PHPUnit | assertArraySubset()函数(1)

📅  最后修改于: 2023-12-03 15:33:40.402000             🧑  作者: Mango

PHPUnit | assertArraySubset()

在 PHPUnit 中, assertArraySubset() 函数用于断言一个数组是否是另一个数组的一个子集。

语法
assertArraySubset($subset, $array, $strict = false, $message = '');
  • $subset:要断言的子集数组。
  • $array:要检查的数组。
  • $strict:是否在比较时进行严格模式比较,默认为 false
  • $message:在断言失败时显示的消息。
返回值

如果比较相同,该函数将不返回任何内容。 如果比较不同,则会引发一个失败的测试断言,并显示相应消息。

示例

假设有以下数组:

$expected = [
    "name" => "John Doe",
    "age" => 30,
    "email" => "john.doe@example.com"
];

$actual = [
    "name" => "John Doe",
    "age" => 30,
    "phone" => "9876543210",
    "email" => "john.doe@example.com"
];

要检查 $actual 是否与 $expected 具有相同的键和值,可以使用以下代码:

$this->assertArraySubset($expected, $actual);

如果要进行严格模式比较,则可以使用以下代码:

$this->assertArraySubset($expected, $actual, true);

在上面的所有示例中,如果 $actual 数组不包含 $expected 数组中的所有键和值,则将引发一个失败的测试断言。

注意事项
  • assertArraySubset() 函数在比较数组时,只比较键和值,而不考虑在每个数组中存在的其他元素。
  • assertArraySubset() 函数在比较多维数组时可能会遇到问题。 在这种情况下,应使用 assertSame()assertEquals() 函数进行比较。
  • assertArraySubset() 函数适用于 PHP 5.4+。 对于 PHP 5.3 及以下版本的 PHPUnit,您可以使用 assertArrayHasKey()assertArrayNotHasKey() 函数代替。