2016-05-24 8 views
1

多くのスペックファイルにこれらのフィクスチャを使用する必要があります。スペックファイル用の共通のセットアップフィクスチャをどのように共有できますか

現在、すべてのSPECスクリプトのうち、次のスニペットをコピーして貼り付けなければなりません。私はどうすればより良い方法でそれをやり遂げることができますか?ありがとう

before(:all) do 
    @airline = FG.create(:airline) 
    @airports = AIRPORTS.collect{|airport| FG.create(:airport, code: airport)} 
    @flight = FG.create(:flight, from_airport: @airports[0], to_airport: @airports[3]) 
    @sku = FG.create(:flight_sku, flight: @flight) 
    @fares = CABIN_TYPE.collect do |cabin| 
     FG.create(:flight_sku_fare, 
       flight_sku: @sku, 
       cabin_class: cabin, 
       price: Faker::Number.between(1500, 18000)) 
    end 
    end 

答えて

0

shared_contexthttps://relishapp.com/rspec/rspec-core/v/3-4/docs/example-groups/shared-contextを使用してください。あなたのスペックで

RSpec.shared_context "create airlines" do 

    before(:all) do 
    @airline = FG.create(:airline) 
    @airports = AIRPORTS.collect{|airport| FG.create(:airport, code: airport)} 
    @flight = FG.create(:flight, from_airport: @airports[0], to_airport: @airports[3]) 
    @sku = FG.create(:flight_sku, flight: @flight) 
    @fares = CABIN_TYPE.collect do |cabin| 
     FG.create(:flight_sku_fare, 
       flight_sku: @sku, 
       cabin_class: cabin, 
       price: Faker::Number.between(1500, 18000)) 
    end 
    end 
end 

describe "My test" do 
    include_context "create airlines" 
end 
関連する問題