我有一个函数,它采用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);