有没有办法设置$的值?在Ruby中的模拟?
发布时间:2020-12-17 04:23:39 所属栏目:百科 来源:网络整理
导读:我正在测试一些与系统命令接口的脚本.它们的逻辑取决于系统命令的返回码,即$?的值.因此,作为简化示例,脚本可能会说: def foo(command) output=`#{command}` if $?==0 'succeeded' else 'failed' endend 为了能够正确地测试这些方法,我希望能够存根内核反引
我正在测试一些与系统命令接口的脚本.它们的逻辑取决于系统命令的返回码,即$?的值.因此,作为简化示例,脚本可能会说:
def foo(command) output=`#{command}` if $?==0 'succeeded' else 'failed' end end 为了能够正确地测试这些方法,我希望能够存根内核反引号调用,并设置$?到一个任意值,看看在反引号调用后我是否从方法中的逻辑得到了适当的行为. $?是一个只读变量,因此以下不起作用: $? = some_number 我可以做一些简单的事情:例如,设置$?为零或非零.例如,将设置$?到0或35212(在我的系统上,无论如何),取决于$?的值: def fail_or_succeed(success) if success `echo foo` else `a-non-existent-command 2>&1` end end 我真正想要做的是设置$?特定值(例如3或122),不仅是零或任意非零.我无法想办法做到这一点. (如果重要,我正在使用Test :: Unit和Mocha进行测试.) 解决方法
编辑:使用丹尼斯威廉姆森的建议:
command = "(exit 21)" 并使用如果$?. exitstatus == 0而不是if $? == 0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 递归:包含在Rails ActiveRecord中
- ruby-on-rails – 如何在Sinatra组织模型?
- c# – 检查lambda表达式中的属性是否为null
- objective-c – Interface Builder将控制插座设置为nil –
- XML 实现 TextView的跑马灯效果
- c# – Deserealization无法正常工作
- 如果条件不满足,Xcode storyboard取消推送
- ios – AVAudioplayer没有播放
- swift语言IOS8开发战记24 解析Json
- xml – 元素必须没有字符或元素信息项[children],因为类型的