phpunit与输出缓冲

时间:2015-03-25 23:08:12

标签: php testing phpunit output-buffering

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

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

所以有几个问题:

  1. 是否可以解决此问题?
  2. 在测试方面,ob_start是否存在固有的错误?
  3. 有办法吗?(如果不能解决的话)。
  4. 用例是使用返回视图的框架(而不是发送到浏览器),Codeigniter是一个典型示例,您可以在其中返回视图。返回视图取决于ob_start()。 非常感谢!

1 个答案:

答案 0 :(得分:4)

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

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