PerlでMock :: Objectに送られた引数を出力するには?

私はモックオブジェクトを持っている

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

If I call $myMockObject->myFunction("my argument");

... mockオブジェクトに渡された引数が正しいかどうかをテストするために、mockオブジェクトから "my argument" を抽出する方法はありますか?

メソッド next_call()、call_args、call_args_string、call_args_pos のように見えるかもしれませんが、動作させることはできません。

ありがとう!

1

1 答え

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;
3
追加された