Phpunit权限测试

Phpunit permission test

我有一个函数可以获取 csv 文件并在数组中生成文件内容。 我需要写一个 phpunit 测试。目标是在输入不存在或不可读(无论是因为文件格式错误还是由于缺乏足够的访问权限)时表示行为的正确性。

我写了一些代码,但我认为它太简单了。

public function testFileAcessForOther()
    {
        $fileName = __DIR__.'/../data.csv';
        $permission = fileperms($fileName);

        $this->assertEquals(33204, $permission);
    }

我用谷歌搜索但没有找到太多关于此的信息。

也许你可以帮忙做另一个测试用例?

您可以使用 assertFileExists 断言该文件确实存在

然后您可以使用以下代码断言文件权限

$filePermisson = substr( sprintf( '%o', fileperms( $fileToCreate ) ), - 4 );
$this->assertEquals( "0777", $filePermisson );

根据PHP手册,可以使用位运算符:

chmod($file, 0755);

$fp = fileperms($file)
// int(16877) => '40755'

$perm = ($fp & 0777);
// 0755
// int(493)

$this->assertSame(0755, $perm);

或比较转换后的十进制文件权限:

$octStr = decoct($perm);
// '755'
$this->assertSame('755', $octStr);
$this->assertEquals(755, $octStr);