1
我想用Test :: MockTime模塊替換當前時間。它工作正常:Perl測試::模擬時間+時間::本地時間
use Test::MockTime qw(:all);
use Time::Local;
my $sec = 0;
my $min = 0;
my $hour = 14;
my $mday = 1; #1-31
my $mon = 1; #1-12
my $year = 2013; #1970-...
set_fixed_time(timelocal($sec,$min,$hour,$mday,$mon-1,$year-1900));
print join "\n", localtime;
但是,當我使用時間::本地時間,什麼都不會發生:
use Time::localtime;
use Time::Local;
use Test::MockTime qw(:all);
my ($sec,$min,$hour,$mday,$mon,$year)=(0,0,14,1,1,2013);
set_fixed_time(timelocal($sec,$min,$hour,$mday,$mon-1,$year-1900));
my $t=localtime();
my $xmon=$t->mon;
my $xyear=$t->year;
my $xday=$t->mday;
my $xmon_now=$xmon+1;
my $xyear_now=$xyear+1900;
print "$xmon_now $xyear_now\n";
輸出將是「12 2012」 如何更改時間在我的測試中,當時間::本地時間使用? 謝謝,對不起我的英語
UPD:
use Time::localtime;
use Test::MockTime qw(:all);
沒有工作
use Test::MockTime qw(:all);
use Time::localtime;
正常工作)perl的魔術
(你應該讓你的更新成爲答案,並接受它!) – ikegami
不能接受它。不明白爲什麼它的作品 – Suic