1
我正在爲我的類寫一個單元測試,它從stdin讀取輸入。在單元測試中,我希望我可以將stdin流重定向到一個字符串。
我該如何做到這一點?
我正在爲我的類寫一個單元測試,它從stdin讀取輸入。在單元測試中,我希望我可以將stdin流重定向到一個字符串。
我該如何做到這一點?
要回答你的文字問題:不像不斷STDIN
,$stdin
僅僅是一個全局變量,你可以用另一個IO對象替換:
require 'stringio'
$stdin = StringIO.new("foo\nbar")
2.times { puts gets }
# => foo
# => bar
但它可能是一個更好的主意,用適當的嘲諷而不是框架,例如this。