У меня есть ruby script, который берет на себя цены на книги у пользователя во время выполнения. Я новичок в написании тестов RSpec для скриптов Ruby. Я использую Ruby 1.9.3-p327 и rspec 2.11.0. Вы можете клон мой проект от Githubthis link.Проблема с Rspec Тест для Ruby-скрипта, который вводит пользовательский ввод для элементов Hash
My Rspec Test предназначен для проверки того, принадлежит ли вновь созданный объект к определенному классу.
Мой тест проходит успешно, если я прокомментирую номер строки 32 в ruby script.
Как-то, когда я раскомментирую эту строку, я получаю ошибку ниже, которая связана с пользовательским вводом. Я даже не тестирую это как часть своего spec file, но все же я прихожу с этой ошибкой. Я точно не знаю, почему и как я мог решить эту проблему.
The Last Samurai: /home/mohnish/xxx/yyy/sample_pocs/book/book.rb:11:in `gets': Is a directory - spec (Errno::EISDIR)
from /home/mohnish/xxx/yyy/sample_pocs/book/book.rb:11:in `gets'
from /home/mohnish/xxx/yyy/sample_pocs/book/book.rb:11:in `block in get_prices'
from /home/mohnish/xxx/yyy/sample_pocs/book/book.rb:9:in `each'
from /home/mohnish/xxx/yyy/sample_pocs/book/book.rb:9:in `inject'
from /home/mohnish/xxx/yyy/sample_pocs/book/book.rb:9:in `get_prices'
from /home/mohnish/xxx/yyy/sample_pocs/book/book.rb:49:in `<top (required)>'
from /home/mohnish/xxx/yyy/sample_pocs/book/spec/spec_helper.rb:1:in `require_relative'
from /home/mohnish/xxx/yyy/sample_pocs/book/spec/spec_helper.rb:1:in `<top (required)>'
from /home/mohnish/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/mohnish/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/mohnish/xxx/yyy/sample_pocs/book/spec/book_spec.rb:1:in `<top (required)>'
from /home/mohnish/.rvm/gems/[email protected]_set/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load'
from /home/mohnish/.rvm/gems/[email protected]_set/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `block in load_spec_files'
from /home/mohnish/.rvm/gems/[email protected]_set/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `map'
from /home/mohnish/.rvm/gems/[email protected]_set/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load_spec_files'
from /home/mohnish/.rvm/gems/[email protected]_set/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:22:in `run'
from /home/mohnish/.rvm/gems/[email protected]_set/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in `run'
from /home/mohnish/.rvm/gems/[email protected]_set/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `block in autorun'
Я также хочу проверить вход пользователя для этого примера. Было бы здорово, если бы вы могли пролить свет на то, как я мог получить то же самое. Я нашел несколько мест, где я могу начать с тестирования ввода пользователя, например, eg 1 и eg 2, но я в основном смотрю, как тестировать ввод пользователя для ряда элементов, принадлежащих хешу.
Спасибо.
Спасибо, Шон. Это исправило ошибку. Вероятно, мне следовало бы уточнить мой поиск в «' gets »: есть каталог - spec». Я изучаю путь .. :). Любые входные данные о том, как я могу написать спецификацию для ввода пользователем элементов Hash? – boddhisattva
Пользователь вводит некоторую строку, которая преобразуется в хэш, или метод ожидает реального хэша? –
Пользовательский ввод представляет собой строку, и каждая такая строка сохраняется как значение для каждого ключевого элемента в Hash. – boddhisattva