2013-10-03 15 views
6

rspecテストで単純なグローバル変数を使用する方法を理解できません。それはそのような些細な機能のようだが、多くのゴーグル後、私は解決策を見つけることができなかった。ヘルパー関数によってアクセス可能なrspecテストで単純なグローバル変数を定義する方法

私は、メインスペックファイルとヘルパースペックファイルの関数を通してアクセス/変更できる変数が必要です。ここで

は、私がこれまで持っているものです。

require_relative 'spec_helper.rb' 
require_relative 'helpers.rb' 
let(:concept0) { '' } 

describe 'ICE Testing' do 
    describe 'step1' do 
    it "Populates suggestions correctly" do 
     concept0 = "tg" 
     selectConcept() #in helper file. Sets concept0 to "First Concept" 
     puts concept0 #echos tg?? Should echo "First Concept" 
    end 
end 

#helpers.rb 
def selectConcept 
     concept0 = "First Concept" 
end 

誰かが私が紛失しているか、「let」を使うのが間違った方法であると指摘できますか?

答えて

5

最も簡単な方法は、グローバル変数を示す$記号を使用することです。

インスタンス変数とフックの前にグローバルを使用することを検討してPreserve variable in cucumber?

7

を参照してください:あなたのspec_helper.rbファイルでhttp://www.rubydoc.info/github/rspec/rspec-core/RSpec/Core/Configuration

:concept0 @その後

RSpec.configure do |config| 
    config.before(:example) { @concept0 = 'value' } 
end 

は(あなたの例で設定されます。 my_example_spec.rb):

RSpec.describe MyExample do 
    it { expect(@concept0).to eql('value') } # This code will pass 
end 
+0

ありがとう、男!これは優雅です。 – zx1986

関連する問題