我正在使用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'});
现在模拟了方法调用。不是 - $?
答案 0 :(得分:4)
my $module = Test::MockModule->new('CCUtil');
$mockModule->mock(cleartool => sub { $? = 0x0100; return 'stream not found' });