【问题标题】:perl mocking is there a way to mock $?perl mocking 有没有办法模拟 $?
【发布时间】:2014-06-25 07:13:28
【问题描述】:

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

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

的值

【问题讨论】:

    标签: perl unit-testing mocking


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2020-12-11
      • 2015-09-19
      • 2010-10-14
      • 2011-07-24
      • 2023-03-03
      相关资源
      最近更新 更多