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);
我有一个函数可以获取 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);