2013-10-03 14 views
6

Nie mogę znaleźć sposobu użycia prostej zmiennej globalnej w teście rspec. Wydaje się, że to taka trywialna funkcja, ale po wielu gogliach nie mogłem znaleźć rozwiązania.Jak zdefiniować prostą zmienną globalną w teście rspec, który może być przechwytywany przez funkcje pomocnicze

Chcę, aby zmienna, która może być dostępna/zmieniona w głównym pliku specyfikacji oraz z funkcji w plikach specyfikacji pomocnika.

Oto co mam do tej pory:

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 

Czy ktoś może wskazać, czego mi brakuje lub jeśli użycie "let" jest całkowicie niewłaściwą metodą?

Odpowiedz

7

rozważyć użycie globalnego przed hakiem o zmiennej instancji: http://www.rubydoc.info/github/rspec/rspec-core/RSpec/Core/Configuration

W pliku spec_helper.rb:

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

Następnie @ concept0 zostaną ustawione w swoich przykładach (my_example_spec.rb):

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

Dzięki, stary! To jest pełne wdzięku. – zx1986