11

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」の使用が完全に間違った方法であるかどうかを指摘できますか?

4

3 に答える 3

12

インスタンス変数でグローバル before フックを使用することを検討してください: http://www.rubydoc.info/github/rspec/rspec-core/RSpec/Core/Configuration

spec_helper.rb ファイルで:

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

次に、@concept0 が例 (my_example_spec.rb) に設定されます。

RSpec.describe MyExample do
  it { expect(@concept0).to eql('value') } # This code will pass
end
于 2015-06-07T18:03:57.857 に答える
6

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

キュウリの変数を保持するを参照してください。

于 2013-10-03T19:13:38.760 に答える