Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在perl中打印发送给Mock::对象的参数?_Perl_Unit Testing_Mocking_Arguments - Fatal编程技术网

如何在perl中打印发送给Mock::对象的参数?

如何在perl中打印发送给Mock::对象的参数?,perl,unit-testing,mocking,arguments,Perl,Unit Testing,Mocking,Arguments,我有一个模拟对象 my $myMockObject = Test::MockObject->new(); 如果我调用$myMockObject->myFunction(“我的参数”) 。。。是否有从模拟对象中提取“我的参数”,以测试传递给模拟对象的参数是否正确 看起来方法next\u call()、call\u args、call\u args\u string、call\u args\u pos可能会有所帮助,但我无法让它工作 谢谢 您可以为myFunction(实际上是一种方法)提供

我有一个模拟对象

my $myMockObject = Test::MockObject->new();
如果我调用
$myMockObject->myFunction(“我的参数”)

。。。是否有从模拟对象中提取
“我的参数”
,以测试传递给模拟对象的参数是否正确

看起来方法
next\u call()、call\u args、call\u args\u string、call\u args\u pos
可能会有所帮助,但我无法让它工作


谢谢

您可以为
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;

您可以为
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;