Итак, по какой-то причине мои маршруты увеличиваются на 11, когда я запускаю тест функции комментариев.
Экспонат A: я нажал «Сохранить» на своем comment_spec.rb
RSpec.feature "Adding comments to movies" do
before do
@kyle = Admin.create(email: "[email protected]", password: "password")
@jill = Member.create(email: "[email protected]", password: "password")
@movie = Movie.create!(title: "First movie", synopsis: "Synopsis of first movie", year_released: '2000', admin: @kyle)
end
scenario "permits a signed in member to write a comment" do
login_as(@jill, scope: :member)
visit "/"
click_link @movie.title
fill_in "New Review", with: "An awesome movie"
click_button "Add Review"
expect(page).to have_content("Review has been created")
expect(page).to have_content("An awesome movie")
# must implement a nested route in order for this to work.
expect(current_path).to eq(movie_path(@movie.comments.last.id))
end
end
Тогда тест проходит
moviesmoviesmovies/spec/features/comments_spec.rb:3)
Завершено за 0,99879 секунды (загрузка файлов заняла 2,4 секунды) 1 пример, 0 сбоев
Теперь я нажимаю Enter в терминале и получаю это:
Adding comments to movies permits a signed in member to write a comment
Failure/Error: expect(current_path).to eq(movie_path(@movie.comments.last.id))
expected: "/movies/2"
got: "/movies/4"
(compared using ==)
# ./spec/features/comments_spec.rb:26:in `block (2 levels) in <top (required)>'
Затем я снова сохраняю comment_spec.rb и получаю следующее:
Adding comments to movies permits a signed in member to write a comment
Failure/Error: expect(current_path).to eq(movie_path(@movie.comments.last.id))
expected: "/movies/3"
got: "/movies/15"
(compared using ==)
# ./spec/features/comments_spec.rb:26:in `block (2 levels) in <top (required)>'
После этого я запускаю:
bundle exec rails db:test:prepare
Затем тесты снова проходят, но вышеописанное повторяется. Что в мире делает это возможным? хаха, а на самом деле?
Мой GitHub, если необходимо.