douhe6181 2010-04-27 07:37
浏览 35

有没有测试PHP SPL接口的开源SimpleTest测试用例

I have quite a few objects in my system that implement the PHP SPL Iterator interface.

As I write them I also write tests.

I know that writing tests is generally NOT a cut 'n paste job.

But, when it comes to testing classes that implement Standard PHP Library interfaces, surely it makes sense to have a few script snippets that can be borrowed and dropped in to a Test class - purely to test that particular interface.

It seems sensible to have these publicly available. So, I was wondering if you knew of any?

  • 写回答

1条回答 默认 最新

  • dongxia9620 2010-06-14 10:36
    关注

    A quick and dirty trick for mocking an iterator is just to stock an ArrayIterator with mock objects and use that as your mock Iterator

    $mockIt = new ArrayIterator;
    $mockIt->append($mock1);
    $mockIt->append($mock2);
    $mockIt->append($mock3);
    
    $sut = new SystemExpectingAnIterator($mockIt);
    $this->assertTrue($sut->doSomethingWithIterator());
    

    It's a bit smelly, but more straightforward than mocking all the SPL Iterator methods.

    评论

报告相同问题?