2013-10-03 10 views
6

Tôi không thể tìm ra cách sử dụng một biến toàn cầu đơn giản trong một thử nghiệm rspec. Nó có vẻ giống như một tính năng tầm thường nhưng sau nhiều goggleing tôi havent đã có thể tìm thấy một giải pháp.Làm thế nào để xác định một biến toàn cầu đơn giản trong một thử nghiệm rspec có thể được accesed bởi các chức năng trợ giúp

Tôi muốn biến có thể được truy cập/thay đổi trong suốt tệp thông số chính và từ các hàm trong tệp đặc tả trình trợ giúp.

Dưới đây là những gì tôi có cho đến nay:

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 

Ai đó có thể chỉ ra những gì tôi bị thiếu hoặc nếu sử dụng "let" là phương pháp hoàn toàn sai?

Trả lời

7

Xem xét sử dụng một thế giới trước khi móc với một biến Ví dụ: http://www.rubydoc.info/github/rspec/rspec-core/RSpec/Core/Configuration

Trong file spec_helper.rb của bạn:

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

Sau đó @ concept0 sẽ được thiết lập trong ví dụ của bạn (my_example_spec.rb):

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

Xin cảm ơn! Đây là duyên dáng. – zx1986

Các vấn đề liên quan