にイテラブル:PHPのテストは二つの配列が同じ値が含まれていることを主張することは非常に簡単PHPUnitのPHPUnitの
$this->assertEquals([1, 2, 3], [1, 2, 3]);
最近のバージョンでは、イテレータとジェネレータの使用量が多く、より魅力作られ、そしてPHP 7.1はthe iterable pseudo-typeを導入しました。つまり、普通の古いarray
を使用しているか、または怠惰なGenerator
を使用しているという事実に縛られることなく、iterable
を受け取って返す関数を書くことができます。
iterable
を返す関数の戻り値をアサートするにはどうすればよいですか?理想的に私は何かをすることができる
$this->assertIterablesEqual(['expected', 'values'], $iterable);
このような機能はありますか?あるいは、私のテストにもう一つのポイント命令コードを積み重ねることを含まない、これをテストする純然たる方法がありますか?
'Traversable'を持っていて、yesの値だけを気にしている場合にはうまくいきます。しかし、 'iterator_to_array'は' Traversable'だけを取るので、 'iterable'では動作しません。 –