注意: Test-Helper 扩展被https://github.com/krakjoe/uopz取代
PHPUnit的测试助手扩展 (PECL) 允许使用您自己的实现重新定义/拦截/存根/模拟硬编码的依赖项:
protected function setUp()
{
$this->getMock(
'Bar', /* name of class to mock */
array('doSomethingElse'), /* list of methods to mock */
array(), /* constructor arguments */
'BarMock' /* name for mocked class */
);
set_new_overload(array($this, 'newCallback'));
}
它还允许拦截退出语句和实例创建:
对于存根和模拟方法,您只需使用 PHPUnit 的常规模拟框架。看
您还可以将 Mockery 与 PHPUnit 一起使用:
另一种选择是使用http://antecedent.github.io/patchwork
Patchwork 是一个 PHP 库,它可以在运行时重新定义用户定义的函数和方法,松散地复制runkit_function_redefine
纯 PHP 5.3 代码中的功能,除其他外,它使您能够用测试替身替换静态和私有方法。