2013-11-15 2 views
0

Я пытаюсь запустить очень простой тест с Терминала и Sublime Text 3. Мои простые тестовых прогонов, но терпит неудачу (undefined local variable or method 'x')Рубин TDD с Rspec (Основные вопросы)

Моя иерархия папок выглядит следующим образом:

enter image description here

spec_helper.rb выглядит следующим образом:

require_relative '../test' 

require 'yaml' 

test_spec.rb чрезвычайно основной

require 'spec_helper.rb' 

describe "testing ruby play" do 
    it "finds if x is equal to 5" do 
    x.should eql 5 
    end 
end 

и мой файл test.rb имеет x = 5 Вот и все.

Будет ли переменная распознаваться только в том случае, если она является частью класса? Нужно ли мне каждый раз запускать мой тест для вызова нового класса?

+0

отправьте свой класс и файл test.rb – Lichtamberg

+0

Вот именно. Как настроить мой класс, чтобы была распознана переменная 'x'? Пока, весь мой файл test.rb имеет в нем 'x = 5' –

ответ

1

От docs

требует (имени) → истинного или ложного

Нагрузки имени, возвращающая верно в случае успеха и ложно, если эта функция уже загружено.

[надрез]

Всех констант или Глобал в пределах исходного файла загруженного будут доступны в глобальном пространстве имен вызывающей программы. Однако местные переменные не будут распространяться в среду загрузки.

Вы можете использовать константу в вашем нужный файл:

X = 5 
... 
X.should eql 5 # => passes 

Но вы, вероятно, хотите сделать что-то совсем другое здесь. Возможно, вы могли бы расширить вопрос и объяснить, что вы пытаетесь выполнить.

Смежные вопросы