perl mocking有没有办法模拟$?

Jay*_*yan 5 perl unit-testing mocking

Test::MockModule用来测试perl模块.其中一个调用需要检查状态$?以获取错误代码并对其进行程序检查.

我怎么能模仿结果呢? $?

被测代码如下所示.

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

if ( $? != 0 ) {
    confess  "Stream $stream not found( $result) ";
}
Run Code Online (Sandbox Code Playgroud)

api返回字符串并设置$?用于检查状态.

正常方法调用及其返回值使用如下所示进行更改

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

现在模拟了方法调用.不是 - 的价值 - $?

ike*_*ami 4

my $module = Test::MockModule->new('CCUtil');
$mockModule->mock(cleartool => sub { $? = 0x0100; return 'stream not found' });
Run Code Online (Sandbox Code Playgroud)