Header
2019-06-15
2019-06-15

Rspecのエラー|ArgumentError is not a valid status

2019 06 15 2101

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 (サンバル)を利用する

Ruby単体でAPIを操作する|Udemy

Ruby、PHP、Python、Javaの予約語の一覧|そもそも予約語って何?

前の記事
次の記事
人気記事
カテゴリーから記事を探す