Разрешает ли vfsStream отсоединить пустой каталог?

Мой юнит тест пытается удалить пустой каталог. В тестируемом классе используется 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 ответ

Это ошибка в vfsStream до 0.10.0, которая позволяет unlink() по каталогам. Ошибка исправлена ​​в следующем выпуске 0.11.0, см. https://github.com/mikey179/vfsStream/issues/23. Теперь предупреждение будет выдано в случае unlink() применяется к каталогу.

Другие вопросы по тегам