Mocking Objects
Test::Mock::Simple

Why
- Test::MockObject pollutes the namespace (remove)
- Test::Mock::Class, Test::MockClass, Mock::Quick, Test::Mock::Test, Test::Mock::ExternalCommand, Test::EasyMock
- Test::Mock::Simple ???
- Am I doing something wrong? 126 (53) vs 904 (446)
package LW::Mock::Network::SNMP::Remote::Acl;
use Test::Mock::Simple;
my %mock_data = ();
my $mock = Test::Mock::Simple->new(module => 'LW::Network::SSH::Remote::Acl');
$mock->add(remove => sub { _remove(@_); }); sub add {
my $self = shift;
my $name = shift;
my $sub = shift;
{
no strict;
no warnings;
*{$self->{module} . '::' . $name} = $sub;
}
} use_ok('LW::Mock::Network::SSH::Remote::Acl');
my $acl = 1977;
my $dist = LW::Subaccnt->search(
features => { DeviceType => 'Distribution' }
)->first;
$dist->api->acl->remove($acl);
my @current = $dist->api->acl->entries($acl);
is(scalar(@current), 0, "No entries on ACL $acl after delete");$self (not really 'self')
package LW::Mock::Network::SNMP::Remote::Acl;
use Test::Mock::Simple;
my %mock_data = ();
my $mock = Test::Mock::Simple->new(module => 'LW::Network::SSH::Remote::Acl');
$mock->add(add => sub { _add(@_); });
$mock->add(delete => sub { _delete(@_); });
$mock->add(entries => sub { _entries(@_); });
$mock->add(overwrite => sub { _overwrite(@_); });
$mock->add(remove => sub { _remove(@_); });
$mock->add(type => sub { _type(@_); });
sub _remove {
my ($self, $acl, $entry) = @_;
my $type = ($entry->{ip}) ? 'standard' : 'extended';
$self->_startEditMode($type, $acl);
<...snip...>
}
sub _startEditMode { <...snip...> }
- github.com/skeletonkey/TestMockSimple
- metacpan.org/pod/Test::Mock::Simple
Mocking Objects
By skeletonkey
Mocking Objects
- 329