【问题标题】:How to write a test for testing if a folder is readable / writable如何编写测试以测试文件夹是否可读/可写
【发布时间】:2013-08-23 16:33:39
【问题描述】:

我编写了一个模块来检查目录是否可写或可读。 但是,我该如何测试呢?

通常,在编写模块时,您可以编写一些测试来测试模块的功能。如何创建一个目录,该目录对于实际创建模块的测试是不可写的?

我想像这样:

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');

但是我如何创建一个目录,例如将其设为只读,然后再将其删除?

【问题讨论】:

  • perldoc -f chmodperldoc perlport

标签: perl testing perl-module


【解决方案1】:

尝试使用File::Path,而不是File::Temp,它允许您选择一个模式 参数来设置您的directories's permissions。为没有读、写和执行权限的目录设置模式为0000

假设它来自 Perl 核心,它应该可以在大多数操作系统上移植。

【讨论】:

  • 嗯,我试过了,但它似乎不起作用: # -- 创建一个无法读取的目录 my ($non_readable_dir) = make_path($readable_dir . '/not-readable' , { 模式 => 0000, }); diag("不可读的测试目录:$non_readable_dir"); diag("可读?" . (-r $non_readable_dir));我的 $check2 = My::DirCheck->new(directory => $non_readable_dir); is($check2->is_readable(), 0, '目录不可读');
猜你喜欢
  • 2011-07-01
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 2014-01-10
  • 2012-09-15
  • 2014-02-24
  • 1970-01-01
相关资源
最近更新 更多