ruby – 覆盖反推

所以我希望覆盖测试文件中的反引号,并将其应用于测试期间调用的所有脚本.测试文件使用了几个类(保存在其他文件中),当这些类使用反引号时,我在测试文件中的覆盖不适用.

例如以下是测试文件(tc_some_test.rb)

module BacktickURI
  def `(uri)
    # `untrick beautifier
    puts "uri = #{uri}\n"
    if uri =~ /some command/
      puts "command ran #{uri}\n"
    else
      system("#{uri} 2>&1")
    end
  end
end

include BacktickURI

对于tc_some_test.rb中使用的所有反引号,这是有效的,但被调用的外部类和脚本仍然使用正常的,非重写的反引号.

任何帮助表示赞赏.替代方法可以是从一个不同的脚本/文件覆盖一个脚本/文件中的方法方法.

解决方法

输入irb:

define_singleton_method '`' do |*| puts 'kokot' end

`ls`
#=> kokot

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...