2

我的单元测试试图删除一个空目录。被测类使用 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);
    }
}

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

4

1 回答 1

0

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

于 2011-10-25T20:23:04.150 回答