Capybara::ElementNotFound:오류 해결 【결합 테스트】

결론



개발자 도구 (검증 모드)를 사용하여 대상 필드의 name 속성 값을 확인하고 해당 값을 fill in 요소로 만듭니다.

(변경 전)

spec/system/users_spec.rb
fill_in 'メールアドレス', with: @user.email


(변경 후)

spec/system/users_spec.rb
fill_in 'user[email]', with: @user.email', with: @user.email

검증 이미지


이 기사의 내용



system Spec을 사용하여 결합 테스트 코드를 실행할 때 테스트 실행 명령을 실행하면 Capybara::ElementNotFound: 오류가 발생했습니다.

그 오류를 해결하는 방법과 프로세스를 기사로하고 있습니다.

오류 개요



오류 화면


오류의 일본어 번역
"Email"은 유효하지 않습니다. 라는 것도, 사용할 수 없는 것이니까.

테스트 코드 내용



spec/system/users_spec.rb
require 'rails_helper'

RSpec.describe 'ユーザー新規登録', type: :system do
  before do
    @user = FactoryBot.build(:user)
  end
  context 'ユーザー新規登録ができるとき' do 
    it '正しい情報を入力すればユーザー新規登録ができてトップページに移動する' do
      visit root_path
      expect(page).to have_content('新規登録')
      visit new_user_registration_path
      fill_in 'メールアドレス', with: @user.email #←問題の箇所
#〜省略〜

오류 해결까지의 프로세스



①오류 보기



오류 화면


"Email"이 유효하지 않으므로 사용할 수 없습니다.
라는 것은 필드의 명칭이 다른 것을 테스트 코드로 기술하고 있는 것을 알 수 있다.

② 검증 툴로 확인



검증 이미지


역시 다른 것이 되어 있다.

③테스트코드의 기술을 변경한다.



(변경 전)

spec/system/users_spec.rb
fill_in 'メールアドレス', with: @user.email


(변경 후)

spec/system/users_spec.rb
fill_in 'user_email', with: @user.email

안전 에러 해결이 되었습니다.

오류를 넘어 완성된 테스트



완성된 테스트 코드에 대해 이하 기사로 하고 있습니다!
원한다면 봐주세요!

이상입니다.

좋은 웹페이지 즐겨찾기