Slide 17
Slide 17 text
17
必要以上に何度も同じレコードを書き込んでいる
● DB書込みが必要なテストでも、テストケースごとに書き
込み直す必要はない場合がある
● 検索用エンドポイントなどはそういう場合が多い
● 右の GET /samples のテストは create_list は1回でいい
Rspec.describe SampleController, type: :requests do
describe 'GET /samples' do
subject {
get samples_path, params: {hoge: hoge, huga: huga}
response
}
let(:hoge) { nil }
let(:huga) { nil }
context 'hoge による検索' do
before do
create_list(:sample, 3)
end
let(:hoge) { 'hoge' }
it 'すべて hoge レコード' do
expect(subject.all? { |sample| sample[:hoge] == 'hoge' }).to eq true
end
end
context 'huga による検索' do
before do
create_list(:sample, 3) # 2回 create しているのが無駄
end
let(:huga) { 'huga' }
it 'すべて huga レコード' do
expect(subject.all? { |sample| sample[:huga] == 'huga' }).to eq true
end