1

私のシステムには、PHP SPL Iterator インターフェースを実装するかなりの数のオブジェクトがあります。

それらを書きながら、テストも書きます。

テストを書くことは、一般的に切り貼りの仕事ではないことを私は知っています。

しかし、標準 PHP ライブラリ インターフェイスを実装するクラスをテストする場合は、特定のインターフェイスを純粋にテストするために、Test クラスに借用してドロップインできるいくつかのスクリプト スニペットを用意することは確かに理にかなっています。

これらを公開することは理にかなっているように思われます。それで、あなたが知っているかどうか疑問に思っていましたか?

4

1 に答える 1

0

イテレータをモックする手っ取り早いトリックは、ArrayIterator にモック オブジェクトをストックし、それをモック イテレータとして使用することです。

$mockIt = new ArrayIterator;
$mockIt->append($mock1);
$mockIt->append($mock2);
$mockIt->append($mock3);

$sut = new SystemExpectingAnIterator($mockIt);
$this->assertTrue($sut->doSomethingWithIterator());

少し臭いですが、すべての SPL Iterator メソッドをモックするよりは簡単です。

于 2010-06-14T10:36:40.360 に答える