{ local *Foo::new = sub { require MockFoo; return MockFoo->new; }; ... tests ... }; # Foo::new is restored to its old value