📅  最后修改于: 2023-12-03 14:45:27.678000             🧑  作者: Mango
PHPUnit是一个流行的PHP测试框架,提供了许多内置的断言函数,其中之一就是assertContainsOnly()。这个函数用于断言一个数组或Traversable对象中只包含指定类型的元素。
assertContainsOnly(string $type, iterable|array $haystack, bool $isNativeType = null, string $message = '')
$type
:指定类型。$haystack
:待检查的数组或Traversable对象。$isNativeType
:可选参数,指定是否为PHP内置类型。默认为true。$message
:可选参数,指定测试失败时的错误信息。以下示例演示如何使用assertContainsOnly()函数。
public function testAssertContainsOnly()
{
$this->assertContainsOnly('int', [1, 2, 3]); // 通过,数组只包含整数元素
$this->assertContainsOnly('string', ['hello', 'world']); // 通过,数组只包含字符串元素
$this->assertContainsOnly('int', [1, 2, 3, '4']); // 失败,数组中包含非整数元素
$obj1 = new stdClass();
$obj2 = new stdClass();
$this->assertContainsOnly('stdClass', [$obj1, $obj2]); // 通过,数组只包含stdClass对象
$this->assertContainsOnly('array', [$obj1]); // 失败,数组中包含非array类型的元素
}
assertContainsOnly()函数用于确保数组或Traversable对象只包含指定类型的元素。该函数非常有用,特别是当你需要对数组或Traversable对象进行类型检查时。