私の問題は、\ArrayObject を拡張するクラスをモックする必要があり、このモックされたオブジェクトを foreach で使用したいのですが、次の例外が発生することです。
例外: Mock_ItemCollection_3ab4029b::getIterator() によって返されるオブジェクトは、トラバース可能であるか、インターフェイス Iterator を実装する必要があります
マニュアルとコード内の実際の型 (instanceof を使用) を確認しましたが、取得したオブジェクトは Traversable (ただし Iterator ではありません) です。
どうすればこの問題を解決できますか? (ところで、元のクラスは foreach でうまく機能します)
更新: これは私がクラスをモックしようとする方法です:
class ItemCollection extends \ArrayObject implements StatefulInterface, ItemCollectionInterface {...}
$mockIC = $this->getMockBuilder('\SK\API\Model\ItemCollection\ItemCollection')
->setConstructorArgs(array($this->container->get('mongo.db')))
->getMock();