以下のようなテストがあり、beforeが二つのcontextの下に重複している形なのですが、この状態ではDRYではないと思い、検索したのですが正解にたどり着きませんでした。
subjectでbeforeの部分をDRYにしたいです。
ruby
1 headers = { 2 'Authorization': "Bearer invalid", 3 }
こちらのheaderの部分だけ違った情報をいれており、全く同じbeforeの中身にはなっていません、、
ただ、検索していてもsubjectをそのように活用する例を見つける事ができません。
アドバイス頂けると嬉しいです、、
そもそもそういった場合にsubjectをつかうべきではなく、他の方法があれば、それについても教えて頂けると幸いです。
ruby
1require 'rails_helper' 2 3RSpec.describe "API", type: :request do 4 let!(:correct_key) { Rails.application.credentials.api[:CORRECT_KEY] } 5 6 describe "GET /api" do 7 context 'access ok' do 8 before do 9 headers = { 10 'Authorization': "Bearer #{correct_key}", 11 } 12 get '/api', headers: headers 13 end 14 15 it "request success" do 16 expect(response.status).to eq 200 17 end 18 19 end 20 end 21 22 context 'access fail' do 23 before do 24 headers = { 25 'Authorization': "Bearer invalid", 26 } 27 get '/api', headers: headers 28 end 29 30 it "request fail" do 31 expect(response.status).to eq 401 32 end 33 end 34 end 35end
よろしくお願い致します。
質問にわかりずらいところがあれば、ご指摘下さい!!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/11 05:45
2020/05/11 16:11
2020/05/12 01:09