我有一個方法auth
,我想存根STDIN。如何在RSpec中存根STDIN.noecho(&:gets)
def auth
...
@pass = STDIN.noecho(&:gets).chomp
...
end
我試過STDIN.stub(:noecho).and_yield('some_pass')
,並獲得NoMethodError: private method 'gets' called for "some_pass":String
。我敢肯定,這裏缺少一些東西,但我無法弄清楚它是什麼。
您可以使用send來繞過私人限制。但是你可能會重新考慮測試STDIN。它內置並可能經過很好的測試。 – vgoff 2013-05-05 19:36:04
我很抱歉誤會。我想要做的是* stub * STDIN。 – zuhao 2013-05-05 19:43:13