У меня есть метод auth
, и я хотел бы заглушить STDIN.Как заглушить STDIN.noecho (&: получает) в RSpec
def auth
...
@pass = STDIN.noecho(&:gets).chomp
...
end
Я попытался STDIN.stub(:noecho).and_yield('some_pass')
, и получил NoMethodError: private method 'gets' called for "some_pass":String
. Я уверен, что здесь что-то не хватает, но я просто не мог понять, что это.
Вы можете использовать отправить, чтобы обойти частные ограничения. Но вы можете пересмотреть тестирование STDIN. Он встроен и, вероятно, хорошо протестирован. – vgoff
Прошу прощения за недоразумение. То, что я пытался сделать, это * stub * STDIN. – zuhao