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

これは、unlink()ディレクトリを許可する0.10.0までのvfsStreamのバグです。このバグは、次のリリース0.11.0で修正されています。https: //github.com/mikey179/vfsStream/issues/23を参照してください。unlink()これで、ディレクトリに適用された場合に警告がスローされます。

于 2011-10-25T20:23:04.150 に答える