Учим ТТД Рспец. не могу загрузить требуется относительный файл - PullRequest
0 голосов
/ 31 октября 2018

я пытаюсь практиковать TDD и rspec. Я тестирую метод, который возвращает кому-то возраст из года рождения. однако, когда я запускаю rspec, он не может прочитать требуемый относительный файл. я не уверен почему. Также мне было интересно, делаю ли я что-то еще неправильно спасибо.

require "date"
def current_age_for_birth_year(birthyear)
  year = Date.today.year
  puts birthyear - year
end

require_relative '../current_age_for_birth_year'

describe "current_age_for_birth_year method" do
  it "returns the age of a person based on the year of birth" do
    age_of_person = current_age_for_birth_year(1984)

    expect(age_of_person).to eq(19)
  end
end

source 'https://rubygems.org'
gem "rspec"

  testing rspec

An error occurred while loading ./spec/current_age_for_birth_year_spec.rb.
Failure/Error: require_relative 'current_age_for_birth_year'

LoadError:
  cannot load such file -- /Users/benherring/testing/spec/current_age_for_birth_year
# ./spec/current_age_for_birth_year_spec.rb:1:in `require_relative'
# ./spec/current_age_for_birth_year_spec.rb:1:in `<top (required)>'
No examples found.

Finished in 0.00027 seconds (files took 0.10919 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

enter image description here

1 Ответ

0 голосов
/ 31 октября 2018

Файл, который вы хотите, находится в одном каталоге, но затем вложен в один в папке app, поэтому вместо этого попробуйте этот

require_relative '../app/current_age_for_birth_year'

С другой стороны, похоже, что вы создали свой Gemfile в папке spec, но обычно вы хотите сохранить Gemfile в корне папки вашего проекта, поэтому в этом случае вы, вероятно, захотите переместить

test/spec/Gemfile
test/spec/Gemfile.lock

на один уровень выше:

test/Gemfile
test/Gemfile.lock

Судя по всему, в вашем Gemfile действительно ничего нет, но это должна быть ваша типичная файловая структура.

...