所以我希望覆盖测试文件中的反引号,并将其应用于测试期间调用的所有脚本.测试文件使用了几个类(保存在其他文件中),当这些类使用反引号时,我在测试文件中的覆盖不适用.
例如以下是测试文件(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