temping
concernでspecを書くときに、Dummyクラスを使いたいけど、
ActiveRecordの機能が必要なとき
tempingを使うことで、ActiveRecordなDummyクラスを使うことが出来る。
使い方
Gemfile
Gemfile
group :test do
gem 'temping'
end
concern
app/models/concern/has_hoge_record.rb
module HasHogeRecord
extend ActiveSupport::Concern
module ClassMethods
def default
where(default: true).first
end
end
end
spec
spec/models/concern/has_hoge_record_spec.rb
require 'spec_helper'
describe HasHogeRecord do
before(:all) do
Temping.create :has_hoge_class do
include HasHogeRecord
with_columns do |t|
t.boolean :default, default: false
end
end
end
describe :default do
subject { HasHogeClass.default }
let(:default) { HasHogeClass.create(default: true) }
it { expect(subject).to eq default }
end
end
※beforeでhas_hoge_classesテーブルが作成される。
before(:all)
じゃないと、二回目のitでPG::UndefinedTable
が発生。
地味に便利!