Zend framework 如何从Zend Controller测试调度方法捕获输出?

Zend framework 如何从Zend Controller测试调度方法捕获输出?,zend-framework,phpunit,Zend Framework,Phpunit,在执行控制器测试方法和运行分派方法时,我发现它与输出相呼应 如何捕获该输出而不是将其打印到命令行?您可以使用PHPUnit中的内置支持: 根据提到输出缓冲的旧答案编辑。我正在寻找与zend view渲染器相关的东西,不输出渲染的输出,而是捕获itPHPUnit现在也支持测试输出:@Thibault PHPUnit本身使用ob_start捕获内容,所以这应该仍然有效:公共函数testFail(){ob_start();echo'foo';$renderedContent=ob_get_conte

在执行控制器测试方法和运行分派方法时,我发现它与输出相呼应


如何捕获该输出而不是将其打印到命令行?

您可以使用PHPUnit中的内置支持:



根据提到输出缓冲的旧答案编辑。

我正在寻找与zend view渲染器相关的东西,不输出渲染的输出,而是捕获itPHPUnit现在也支持测试输出:@Thibault PHPUnit本身使用ob_start捕获内容,所以这应该仍然有效:公共函数testFail(){ob_start();echo'foo';$renderedContent=ob_get_contents();ob_end_clean();$renderedContentAfterClean=ob_get_contents();$this->assertSame($renderedContent,'foo');$this->assertSame($renderedContentAfterClean,'bar');}@Josef感谢您的链接。虽然显然,PHPUnit已经在
设置中执行了
ob_start
,因此您无法捕获输出。请参阅@Thibault It can nested-因此,如果您不想做调试噩梦,它意味着您必须捕获异常并调用ob_end_clean.:)(当然,只使用内置解决方案会更好。)header()函数忽略ob_*函数,因此即使在PHPUnit之外也无法捕获头。