perl mocking有没有办法模拟$?

时间:2014-06-24 11:26:37

标签: perl unit-testing mocking

我正在使用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'});

现在模拟了方法调用。不是 - $?

的值

1 个答案:

答案 0 :(得分:4)

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