phpunit与输出缓冲

Pat*_*ick 5 php testing phpunit output-buffering

我正在尝试将PHPunit集成到一个大项目中,一切似乎都很好,但似乎所有依赖ob_start()的方法都会导致风险测试.

在线阅读,似乎风险测试是执行测试方法未涵盖的代码的此类测试.但是,我根本没有使用@covers注释,而这只发生在ob_start()上.

所以有几个问题:

  1. 有可能解决这个问题吗?
  2. 在测试方面,ob_start是否存在固有的错误?
  3. 有办法吗?(如果不能解决它).

用例是使用返回视图的框架(而不是发送到浏览器),Codeigniter是一个经典示例,您可以在其中返回视图.返回视图取决于ob_start().非常感谢!

Pat*_*ick 4

解决方案有两个方面,因为它围绕着我遇到的两个问题。

  1. 关于具体问题,在框架(codeigniter)中使用视图,我只是使用了加载器的模拟,所以我实现了一个空函数,它实际上并不加载和输出html。
  2. 关于我对 PHPunit 行为的实际问题,如果使用 ob_start 和 ob_clean,PHPunit(4.5) 似乎会假设测试是有风险的,但是当使用ob_get_clean时,测试会按预期进行。我不知道为什么,因为我没有深入研究代码本身,但这为我解决了问题