vfsStream是否允许取消链接空目录?

时间:2011-10-24 13:07:57

标签: php unit-testing phpunit unlink rmdir

我的单元测试尝试删除空目录。被测试的类使用unlink(先前测试的结果)。如果我在没有vfsStream的情况下编写相同的代码,我就无法删除空目录。

单元测试:

require 'vfsStream/vfsStream.php';
require '../Classes/Recursive/Delete.php';

class Recursive_Delete_Test extends PHPUnit_Framework_TestCase {
    // More tests!
    public function testShouldRemoveAnEmptyDirectory()
    {
        vfsStream::setup();
        vfsStreamWrapper::getRoot()->addChild(vfsStream::newDirectory('dir'));
        $recursiveDelete = new Recursive_Delete(vfsStream::url('root/dir'));
        $recursiveDelete->delete();
        $this->assertFileNotExists(vfsStream::url('root/dir'));
    }
}

生产代码:

class Recursive_Delete
{
    private $_file;

    public function __construct($file)
    {
        $this->_file = $file;
    }

    public function delete()
    {
        unlink($this->_file);
    }
}

这是一个错误还是我错过了什么? 感谢。

1 个答案:

答案 0 :(得分:0)

这是vfsStream中的一个错误,最高可达0.10.0,允许在目录上使用unlink()。该错误已在即将发布的0.11.0版中修复,请参阅https://github.com/mikey179/vfsStream/issues/23。现在,如果unlink()应用于目录,则会抛出警告。