PHPUnit中它很容易斷言,兩個數組包含相同的值:測試iterables PHPUnit中
$this->assertEquals([1, 2, 3], [1, 2, 3]);
最新的PHP版本做迭代器和發電機很多更具吸引力的使用,以及PHP 7.1引入了the iterable pseudo-type。這意味着我可以編寫函數來獲取並返回iterable
,而不會與我使用簡單的舊array
或使用懶惰Generator
的事實相結合。
如何聲明返回iterable
函數的返回值?理想情況下我可以做類似
$this->assertIterablesEqual(['expected', 'values'], $iterable);
有沒有這樣的功能?或者,有沒有一種合理的測試方法,不需要在我的測試中增加一堆除此之外的命令式代碼?
如果你有一個'Traversable'並且只關心值yes,那麼這個方法就行得通。但它不適用於'iterable',因爲'iterator_to_array'只需要'Traversable'。 –