#!perl use strict; use warnings; package A; sub new { my $class = shift; return bless {}, $class; } sub whoami { my $self = shift; return "I am an A.\n"; } sub sayhi { my $self = shift; return "Hi!\n"; } package main; my $a = A->new; print $a->whoami; print $a->sayhi; use Test::MockObject::Extends; $a = Test::MockObject::Extends->new($a); $a->mock('sayhi', sub {return "Nope. Won't say 'Hi!'.\n";}); my $a2 = A->new; print $a2->whoami; print $a2->sayhi; $a->fake_new('A'); my $a3 = A->new; print $a3->whoami; print $a3->sayhi;