Phpunit权限测试

问题描述 投票:0回答:2

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

我写了一些代码,但我认为这很简单。

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

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

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

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

php testing phpunit
2个回答
0
投票

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

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

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

0
投票

基于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);
© www.soinside.com 2019 - 2024. All rights reserved.