2019-06-15
2020-01-15
Rspecのエラー|ArgumentError is not a valid status

RspecのEnum型のテストを行う際に、エラーが発生したので対応方法を記載します。
開発環境
Ruby on Rails 5
FactoryBot
対象Model
以下をArticleModelテストしようとして
class Article < ActiveRecord::Base enum status: {closed: 0, publish: 1, reservation: 2} end
FactoryBot以下で以下statusのEnumを記載するとエラーになります。
FactoryBot.define do factory :article do title { '記事タイトル' } content { '記事の文章' } status {'1'} end end
発生するエラー
ArgumentError: '1' is not a valid status
解決策はEnumを数字ではなく、テキストで変更し保存
FactoryBot.define do factory :article do title { '記事タイトル' } content { '記事の文章' } status {'publish'} end end
以上になります。
その他関連記事
ユーザーのフラグ管理に使えるRuby on Railsのenumを紹介
Ruby on Railsでredcarpetを利用し、シンタックスハイライトに対応したブログ機能を実装する
Ruby on RailsでSambal (サンバル)を利用する
あなたにお勧めの記事
前の記事
2019/06/11
次の記事
2018/09/21