Jer*_*auw 5 php arrays phpunit iterator php-7.1
在 PHPUnit 中,很容易断言两个数组包含相同的值:
$this->assertEquals( [1, 2, 3], [1, 2, 3] );
Run Code Online (Sandbox Code Playgroud)
PHP 的最新版本使迭代器和生成器的使用更具吸引力,并且 PHP 7.1 引入了可迭代伪类型。这意味着我可以编写函数来获取和返回,iterable而不必绑定到我正在使用普通旧的array或使用惰性Generator.
如何断言返回 an 的函数的返回值iterable?理想情况下我可以做类似的事情
$this->assertIterablesEqual( ['expected', 'values'], $iterable );
Run Code Online (Sandbox Code Playgroud)
有这样的功能吗?或者,是否有一种明智的测试方法,不需要在我的测试中添加一堆无关紧要的命令性代码?
您可以使用iterator_to_array函数,例如:
$expected = [1, 2, 3];
$this->assertEquals( $expected, iterator_to_array($iterable) );
Run Code Online (Sandbox Code Playgroud)
这也适用于发电机。
希望这有帮助