2012-02-06 20 views
1

我有一個模擬對象如何打印發送給perl中的Mock :: Object的參數?

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

如果我打電話$myMockObject->myFunction("my argument");

...反正是有,以檢驗傳遞給模擬對象的說法是否正確,從模擬對象中提取"my argument"的?

看起來像方法next_call(), call_args, call_args_string, call_args_pos可能會有幫助,但我不能得到它的工作。

謝謝!

回答

3

您可以爲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; 
相關問題