我如何共享规范文件的常用设置夹具

时间:2016-05-24 03:44:27

标签: ruby-on-rails rspec

我需要将这些灯具用于许多规格文件。

目前,我必须在每个SPEC脚本之后使用COPY和PASTE。我怎么能以更好的方式做到这一点。感谢

  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

1 个答案:

答案 0 :(得分: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