我编写了一个模块,用于检查目录是否可写或可读。 但是,我该如何测试呢?
通常,在编写模块时,您可以编写一些测试来测试模块的功能。如何创建一个目录,该目录不能由实际创建模块的测试写入?
我想象这样的事情:
use strict;
use warnings;
use File::Temp qw/ tempdir /;
use Test::More tests => 5;
BEGIN { use_ok('My::DirCheck') };
my $readable_dir = tempdir();
my $check = My::DirCheck->new(directory => $readable_dir);
is($check->is_readable(), 1, 'temp dir is readable');
# FIXME: how to make it not readale?
isnt($check->is_readable(), 1, 'temp dir is not readable');
my $writable_dir = tempdir();
is($check->is_writeable(), 1, 'temp dir is writeable');
# FIXME: how to make it not writable?
isnt($check->is_writeable(), 1, 'temp dir is not writeable');
但是我如何创建一个目录,使其成为只读,然后将其删除?
答案 0 :(得分:1)
尝试使用File::Path
代替File::Temp
,它允许您选择能够设置directories's permissions的模式参数。对于没有读取,写入和执行权限的目录,将模式设置为0000
。
假设它来自Perl核心,它应该可以在大多数操作系统上移植。