草庐IT

iteratorMock

全部标签

php - 如何模拟使用 PHPUnit 实现 Iterator 接口(interface)的类?

我如何模拟实现Iterator的类的依赖项?接口(interface)是否稳健? 最佳答案 网上已经有一些解决这个问题的现有解决方案,但我看到的所有解决方案都有一个类似的弱点:它们依赖于->expects($this->at(n))。PHPUnit中的'expectsat'函数有一些奇怪的行为,因为计数器是针对模拟的每个方法调用的。这意味着,如果您在直接foreach之外对迭代器进行方法调用,则必须调整迭代器模拟。解决方案是创建一个包含基本迭代器数据(源数组和位置)的对象,并将其传递给returnCallback闭包。因为它是通过引

php - 如何模拟使用 PHPUnit 实现 Iterator 接口(interface)的类?

我如何模拟实现Iterator的类的依赖项?接口(interface)是否稳健? 最佳答案 网上已经有一些解决这个问题的现有解决方案,但我看到的所有解决方案都有一个类似的弱点:它们依赖于->expects($this->at(n))。PHPUnit中的'expectsat'函数有一些奇怪的行为,因为计数器是针对模拟的每个方法调用的。这意味着,如果您在直接foreach之外对迭代器进行方法调用,则必须调整迭代器模拟。解决方案是创建一个包含基本迭代器数据(源数组和位置)的对象,并将其传递给returnCallback闭包。因为它是通过引