【RSpec】모델 단위 테스트 실행시의 「MissingAttributeError」를 해결한다
2241 단어 RSpec루비RailsFactoryBot
소개
RSpec을 이용한 테스트시의 에러로 넘어졌으므로, 비망록으로서 정리합니다.
환경
Ruby 2.6.5
Rails 6.0.3.6
상황
Twitter와 같은 게시물 앱을 만드는 중입니다. FactoryBot을 사용하여 게시물에 대한 Post 모델의 단위 테스트를 수행한 결과 "MissingAttributeError"가 나왔습니다. 아래에 자세히 설명합니다.
FactoryBot
posts.rbFactoryBot.define do
factory :post do
# 省略
association :user
# 省略
end
end
association :user는 users.rb의 FactoryBot과 연관이 있음을 의미합니다. 즉, Post 인스턴스가 생성되는 동시에 관련 User 인스턴스도 생성됩니다.
example을 내보내고 시험에 테스트를 실행하면 오류가 발생합니다.
ActiveModel::MissingAttributeError:
can't write unknown attribute `user_id`
"user_id라는 속성은 모르겠어"라는 내용입니다.
posts 테이블 확인
테이블의 열을 확인할 때 user_id 열이 없었습니다.
마이그레이션 파일 확인
t.references :user의 설명을 잊어 버렸고 테이블을 만들 때 user_id 열을 만들 수 없다는 것을 알았습니다.
user_id 열을 추가하고 오류 해결
칼럼의 추가 방법은, 다른 분의 알기 쉬운 기사가 있으므로, 참고해 주세요.
나는 이쪽을 참고로 했습니다.
h tps:// 퀵했다. 작은 m / 쿠라 ___D / MS / 그림 3694f7 아 870 아 1 C4738 그림
요약
post는 user에 연결되어 있기 때문에 FactoryBot에서 asociation :user라고 기술하고 연결하는 user 데이터를 동시 생성하려고했습니다.
하지만 post 테이블에 user_id 열이 없어서 연결할 수 없어 오류가 발생했습니다.
마지막으로
처음의 투고로 알기 어려운 부분이 많이 있을까 생각합니다만, 누군가의 참고가 되면 다행입니다.
Reference
이 문제에 관하여(【RSpec】모델 단위 테스트 실행시의 「MissingAttributeError」를 해결한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seaturtle_m_o/items/b79b151db724f4a71142
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Ruby 2.6.5
Rails 6.0.3.6
상황
Twitter와 같은 게시물 앱을 만드는 중입니다. FactoryBot을 사용하여 게시물에 대한 Post 모델의 단위 테스트를 수행한 결과 "MissingAttributeError"가 나왔습니다. 아래에 자세히 설명합니다.
FactoryBot
posts.rbFactoryBot.define do
factory :post do
# 省略
association :user
# 省略
end
end
association :user는 users.rb의 FactoryBot과 연관이 있음을 의미합니다. 즉, Post 인스턴스가 생성되는 동시에 관련 User 인스턴스도 생성됩니다.
example을 내보내고 시험에 테스트를 실행하면 오류가 발생합니다.
ActiveModel::MissingAttributeError:
can't write unknown attribute `user_id`
"user_id라는 속성은 모르겠어"라는 내용입니다.
posts 테이블 확인
테이블의 열을 확인할 때 user_id 열이 없었습니다.
마이그레이션 파일 확인
t.references :user의 설명을 잊어 버렸고 테이블을 만들 때 user_id 열을 만들 수 없다는 것을 알았습니다.
user_id 열을 추가하고 오류 해결
칼럼의 추가 방법은, 다른 분의 알기 쉬운 기사가 있으므로, 참고해 주세요.
나는 이쪽을 참고로 했습니다.
h tps:// 퀵했다. 작은 m / 쿠라 ___D / MS / 그림 3694f7 아 870 아 1 C4738 그림
요약
post는 user에 연결되어 있기 때문에 FactoryBot에서 asociation :user라고 기술하고 연결하는 user 데이터를 동시 생성하려고했습니다.
하지만 post 테이블에 user_id 열이 없어서 연결할 수 없어 오류가 발생했습니다.
마지막으로
처음의 투고로 알기 어려운 부분이 많이 있을까 생각합니다만, 누군가의 참고가 되면 다행입니다.
Reference
이 문제에 관하여(【RSpec】모델 단위 테스트 실행시의 「MissingAttributeError」를 해결한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seaturtle_m_o/items/b79b151db724f4a71142
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FactoryBot.define do
factory :post do
# 省略
association :user
# 省略
end
end
ActiveModel::MissingAttributeError:
can't write unknown attribute `user_id`
Reference
이 문제에 관하여(【RSpec】모델 단위 테스트 실행시의 「MissingAttributeError」를 해결한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/seaturtle_m_o/items/b79b151db724f4a71142텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)