我的系统中有很多实现PHP SPL Iterator接口的对象。
在我写作时,我也会写测试。
我知道编写测试通常不是一个简单的粘贴工作。
但是,当涉及到测试实现标准PHP库接口的类时,确实有一些可以借用并放入Test类的脚本片段是有意义的 - 纯粹是为了测试该特定接口。
将这些公开发布似乎是明智的。所以,我想知道你是否知道?
答案 0 :(得分:0)
模拟迭代器的快速而肮脏的技巧只是用模拟对象存储ArrayIterator并将其用作模拟迭代器
$mockIt = new ArrayIterator;
$mockIt->append($mock1);
$mockIt->append($mock2);
$mockIt->append($mock3);
$sut = new SystemExpectingAnIterator($mockIt);
$this->assertTrue($sut->doSomethingWithIterator());
它有点臭,但比模拟所有SPL Iterator方法更直接。