はじめに
enumのテストコードを書いたので、備忘として残します。
shoulda-matchers
を使用しています。
ソースコード
app/models/hoge.rb
class Hoge < ApplicationRecord
enum status: {
hoge: 0,
huga: 1
}
end
spec/models/hoge_spec.rb
RSpec.describe Hoge, type: :model do
describe 'enum' do
it { is_expected.to define_enum_for(:status).with_values(hoge: 0, huga: 1) }
end
end
解説
shoulda-matchers
のdefine_enum_for
を使うと上のように書けます。
with_values
ではなく、with
でもテストは通りますが怒られます。
簡単ですね!