Проблема неинициализированной константы (NameError) - как включить класс? - PullRequest
2 голосов
/ 11 декабря 2010

Вот моя структура каталогов:

/features/ninja.feature
/features/step_definitions/ninja_steps.rb
/src/ninja.rb

Когда я запускаю

cucumber

в корне моего проекта, я получаю ошибку uninitialized string constant Ninja (NameError).Я определил, что это вызвано этой строкой в ​​моем ninja_steps.rb файле:

@ninja = Ninja.new :belt_level => belt_level

В моем ninja.rb файле:

class Ninja
  def initialize (belt_level)
  end
end

Нужно ли добавить какой-то require вверху моего файла ninja_steps.rb или как?Кажется, я не могу понять, как это сделать, чтобы он не взрывался.

Ответы [ 2 ]

4 голосов
/ 11 декабря 2010

Вы пытались добавить включение в верхней части ninja_steps? Что-то вроде

require File.expand_path(File.dirname(__FILE__) + "/../../src/ninja")

должен сделать свое дело. В противном случае огурец понятия не имеет, что такое ниндзя. :)

2 голосов
/ 01 октября 2012

Чтобы загрузить все эти файлы немного иначе, чем предлагает Билл Тернер, воспользовавшись подсказкой таких проектов, как cucumber / aruba:

https://github.com/cucumber/aruba/blob/master/features/support/env.rb

# env.rb
# add your src dir to the load path
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../src')
require 'ninja'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...