perl mocking 有没有办法模拟 $?

标签 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'});

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

最佳答案

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

关于perl mocking 有没有办法模拟 $?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24385412/

相关文章:

perl - 这个 perl 包装函数可以扩展到任何输入函数吗?

html - 输出 InnerHTML Perl LibXML

python - pytest 'ImportError: No module named YadaYadaYada' 的 PATH 问题

java - Java单元测试如何触发JsonProcessingException?

ios - xctest - 如何测试新 View 是否在按下按钮时加载

perl - 下载 CPAN 模块分发存档:I18N::Langinfo

java - 如何从 Perl 调用 Java 程序?

Angular 6 错误 : Cannot make XHRs from within a fake async test. 请求 URL : https://mlj0xk2yy. com/latest/static/videos

c# - 我把我的模拟放在哪里?

javascript - 使用 Node 串行端口回调时的模拟/单元测试