Как общая подсказка для решения таких сообщений об ошибках: в 99% всех случаев, когда компьютер сообщает, что не может что-то найти, это происходит потому, что эта вещь не существует.В 99% остальных случаев это не то, чего ожидает компьютер.
Первый, очевидно, здесь не тот случай, поскольку bowling.rb
явно делает существовать.Тем не менее, ваша проблема прямо попадает в эти вторые 99%: require
загружает файл из Ruby's $LOAD_PATH
.Но вы не поместили bowling.rb
в каталог на Ruby's $LOAD_PATH
, вы просто поместили его в тот же каталог, что и bowling_spec.rb
.
Одним очевидным решением было бы добавить этот каталог к Ruby's * 1013.*.Очевидно, но - в данном случае - неправильно.
Если вы хотите загрузить файл относительно позиции текущего исполняемого файла, вам нужно использовать require_relative
.В данном случае это правильное решение.
Обратите внимание, что для того, чтобы метод describe
даже существовал , не говоря уже о работе, вам также потребуетсялибо добавьте require 'rspec'
к вашему файлу спецификаций, либо запустите его с помощью программы запуска RSpec (т. е. rspec bowling_spec.rb
вместо ruby bowling_spec.rb
), но это совершенно не связано с проблемой, с которой вы сталкиваетесь.