我正在使用 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'});
现在模拟方法调用。不是 --
$?
的值
最佳答案
my $module = Test::MockModule->new('CCUtil');
$mockModule->mock(cleartool => sub { $? = 0x0100; return 'stream not found' });
关于perl mocking 有没有办法模拟 $?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24385412/