【问题标题】:Redirect $stdin to string in Ruby将 $stdin 重定向到 Ruby 中的字符串
【发布时间】:2015-10-14 00:14:23
【问题描述】:

我正在为我的班级编写一个从标准输入读取输入的单元测试。在单元测试中,我希望我可以将标准输入流重定向到一个字符串。

我怎样才能做到这一点?

【问题讨论】:

    标签: ruby stdin


    【解决方案1】:

    回答您的字面问题:与常量STDIN 不同,$stdin 只是一个全局变量,您可以将其替换为另一个 IO 对象:

    require 'stringio'
    $stdin = StringIO.new("foo\nbar")
    2.times { puts gets }
    # => foo
    # => bar
    

    但使用适当的模拟框架可能是一个更好的主意,例如this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 2015-11-08
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      相关资源
      最近更新 更多