我有一個定義了use overload '""' => \&name;
和name
方法的Perl對象。如何在Perl中模擬一個對象?
在我的單元測試我都嘲笑這個對象,包括name
方法,但類似的代碼
if (-d $object)
仍然給我Use of uninitialized value in -d ...
。模擬的方法沒有被執行。
我的模擬代碼:我已經嘲笑正在
my $CMmock = Test::MockObject::Extends->new('MyClass');
$CMmock->mock('name', sub { print "TEST!\n";});
$CMmock->mock('""', sub {print "TEST!\n";});
其他方法。
參見:http://stackoverflow.com/questions/1954529/perl-mocking-df-and-friends-how-to-put-them-into-coreglobal – mob 2010-03-01 16:14:15
有趣問題,但請在嘲笑超載類的問題上提出恰當的問題。 – darch 2010-03-02 09:04:56
感謝mobrule,那個鏈接解決了我的問題。可惜我在搜索時沒有找到它。 – Fredrik 2010-03-02 12:31:05