【问题标题】:How to set expected exception in PHPUnit for incorrect file path in fopen()?如何在 PHPUnit 中为 fopen() 中的错误文件路径设置预期异常?
【发布时间】:2015-09-16 03:42:09
【问题描述】:

我知道如何在使用 PHPUnit 的 setExpectedException() 方法和/或其等效注释进行单元测试时设置预期的异常。

但由于某种原因,我无法在围绕 fopen() 测试一些逻辑时做同样的事情,这是一个示例:

class AbstractFileReaderTest extends \PHPUnit_Framework_TestCase
{
    public function test_invalidFileException()
    {
        $filePath = 'incorrect/file/path.csv';

        $this->setExpectedException(\Exception::class);

        fopen($filePath, "r");
    }
}

【问题讨论】:

  • fopen() 不会抛出异常,它会生成警告(并返回布尔值 false).... 除非您重写 PHP 错误处理程序以抛出异常而不是正常行为
  • 除了@MarkBaker 的评论 - setExpectedException 的第一个参数应该是一个字符串。
  • 谢谢 :),Chris \Exception::class is string ;)

标签: php exception error-handling phpunit


【解决方案1】:

对于文件系统上的单元测试,最好使用vfsStream之类的东西

vfsStream 是一个用于虚拟文件系统的流包装器,对于测试而言,它是一种比真实文件系统更简洁的解决方案。

【讨论】:

  • 非常有趣和有用的工具,谢谢。但是安装posix 可以吗?
猜你喜欢
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 2019-12-21
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
  • 2018-07-16
相关资源
最近更新 更多