我知道如何在使用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");
}
}
对于文件系统上的单元测试,最好使用类似vfsStream 的东西
vfsStream是虚拟文件系统的流包装器,对于测试来说,在那里编写比在真实文件系统中编写更干净的解决方案。