2016-04-27 2 views
0

Не могу понять, что здесь не так. Я часами просматривал interwebs и нашел только людей с подобными проблемами, и я пробовал их решения, но я все еще получаю эту ошибку. Я запускаю тест, и он говорит мне, что он не может найти заголовок элемента, но я смотрю его в своем коде, и я тоже вижу его на локальном хосте. Когда я просматриваю его в инспекторе, у него есть название поля Title. Любая помощь будет принята с благодарностью.Capybara :: ElementNotFound Не могу найти поле "Название"

Мой _form.html.erb, который я рендеринга на new.html.erb

<div class='form-group'> <div class='control-label col-md-1'> <%= f.label :title %> </div> <div class='col-md-11'> <%= f.text_field :title, class: 'form-control', placeholder: 'Title of movie', autofocus: true %> </div>

Мой контроллер

def create @movie = current_admin.movies.build(movie_params) if @movie.save flash[:success] = "Movie has been created" redirect_to root_path else flash.now[:danger] = "Movie has not been created" render :new end end

Моя особенность спецификации

fill_in "Title", with: "Movie title" fill_in "Synopsis", with: "Lorem Ipsum" fill_in "Year released", with: "Date" click_button "Add Movie”

Моя ошибка

Capybara::ElementNotFound Unable to find field “Title”

Вот GitHub, если вы считаете, что нужно смотреть.

ответ

0

Просмотрев page.html, перед вызовом fill_in вы можете видеть, что ваш пользователь не вошел в систему. Это связано с тем, что вы вызываете login_as(@kyle), который по умолчанию использует область действия: пользователь, но вы пытаетесь войти в систему администратора. Вы хотите login_as(@kyle, scope: :admin)

+0

ДА !! Большое вам спасибо, Том! Я не знал о сфере видимости, новичок в RSpec. – kyle

+0

@kyle Scope - это особенность разработки. Вероятно, вы должны прочитать об этом в документах разработки, так как вы создали по крайней мере 2 области в вашем приложении, и если вы не понимаете этого, вы можете столкнуться со всевозможными странными проблемами –