Я пытаюсь смоделировать подпрограмму Net :: OpenSSH pipe_out.Мой код выглядит следующим образом:
use strict;
use warnings;
use Test::More;
use Test::Exception;
use Test::MockModule;
И метод My Begin
use_ok('Net::OpenSSH');
И я издеваюсь над новым методом следующим образом.
$mockOpenSSH = Test::MockModule->new('Net::OpenSSH');
$mockOpenSSH->mock(
new => sub {
my $ObjectName = shift;
my $hostIp = shift;
is $hostIp, "<My IP>";
print "Fake OpenSSH::new\n";
return bless( {}, 'Net::OpenSSH' );
},
);
Но когдаЯ пытаюсь смоделировать pipe_out следующим образом
$mockOpenSSH->mock( 'pipe_out' => sub {return 1} );
Я получаю сообщение об ошибке от моего основного модуля Perl, где я вызываю pipe_out как
$ssh->pipe_out('ls');
Я получаю ошибку
# Неудачный тест '' # в строке test_abc_config.t 148. # умер: не удается найти метод объекта "pipe_out" через пакет "Test :: MockModule" в строке abc.pm 166.
Может кто-нибудь помочь мне, пожалуйста?