Как распечатать аргументы, отправленные Mock :: Object в Perl? - PullRequest
1 голос
/ 06 февраля 2012

У меня есть фиктивный объект

my $myMockObject = Test::MockObject->new();

Если я позвоню $myMockObject->myFunction("my argument");

... есть ли способ извлечь "my argument" из фиктивного объекта, чтобы проверить, был ли аргумент, переданный фиктивному объекту, был правильным?

Похоже, методы next_call(), call_args, call_args_string, call_args_pos могут помочь, но я не могу заставить его работать.

Спасибо!

1 Ответ

3 голосов
/ 06 февраля 2012

Вы можете предоставить любую реализацию для myFunction (которая на самом деле является методом), поэтому вы также можете хранить аргументы где-то для тестирования. Что-то вроде:

use Test::More;
use Test::MockObject;

my $mock = Test::MockObject->new();

my $arg;
$mock->mock(myFunction => sub {
    my $self = shift;
    ($arg) = @_
});

$mock->myFunction("my argument");
is $arg, "my argument", 'correctly passed argument';

done_testing;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...