2014-06-24 66 views
5

我正在使用Test::MockModule來測試perl模塊。其中一個呼叫需要檢查$?的狀態以獲取錯誤代碼和程序檢查。

我如何可以模擬被測$?

代碼就像下面的結果。

my $result = CCUtil::cleartool($cmd); 

if ($? != 0) { 
    confess "Stream $stream not found($result) "; 
} 

api返回字符串並設置$?用於檢查狀態。

普通方法調用和其返回值是使用類似下面

my $module = Test::MockModule->new('CCUtil'); 
$mockModule->mock(cleartool => sub {return 'stream not found'}); 

方法調用現在嘲笑改變。不是 - $?

回答

4
my $module = Test::MockModule->new('CCUtil'); 
$mockModule->mock(cleartool => sub { $? = 0x0100; return 'stream not found' }); 
相關問題