0

私の問題は、\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();
4

1 に答える 1