入れ子になっているときのTest::MockObject
以下のようにNet::Rexster::RequestがNet::Rexster::Responseを呼ぶ場合はMockObjectをMockObject::Extendsにはめ込んでみる。
use Test::MockObject; use Test::MockObject::Extends; use Net::Rexster::Client; use Net::Rexster::Request; # Mock for Net::Rexster::Response my $mock = Test::MockObject->new(); $mock->set_always("get_results", "ok"); $mock->set_always("get_totalSize", 1); # Mock Net::Rexster::Request my $req = Net::Rexster::Request; $req = Test::MockObject::Extends->new( $req ); $req->mock('get', sub { return $mock } );