огурец (LoadError) для моей модели - PullRequest
0 голосов
/ 24 января 2012

Я уверен, что это просто, так как я новый пользователь Rails и хочу сделать Cucumber правильно. Я провел выходные, читая книгу Pragmatic, и у меня есть небольшой проект, который я хочу создать и использовать. Я намеренно настроил свою первую функцию настолько широко, насколько это возможно, чтобы она не была слишком хрупкой в ​​зависимости от того, как она работает со стороны рельсов. Я создал новое приложение rails, используя стартер DanielKehoe на github. Я думаю, что я понял пользователя. Но когда я попытался использовать Cucumber для создания моей первой таблицы ссылочных единиц, которая будет таблицей констант, я ожидал, что cucumber заставит меня создать модель ссылочных единиц, но я потратил все утро, пытаясь заставить ее сделать это, используя книга, Railscasts и stackoverflow, чтобы подтолкнуть меня туда, где я сейчас нахожусь. Я пошел дальше и сгенерировал модель для эталонных единиц, контроллер с новым действием и пустым представлением. Но теперь он не может понять, что у меня есть модель Reference Unit с (LoadError). Странно, потому что это есть в приложении.

Вот моя текущая особенность:

Feature: I want to have Reference Units that I can refer to so they can be used elsewhere. That way 
they can be updated in one place. I want to create and edit these Units.

Background:
Given I am logged in as the following user:
| name | "Testy McUserton" |
| password | "please" |
| email | "testy@userton.com" |

Scenario: Adding Reference Units
When I go to the new Reference Units page
And I fill in the following:
| commodity | "corn" |
| language | "en" |
| wholesale unit | "xton" |
| retail unit | "xliter" |
| receipt unit | "dollar" |
Then it should create a new Reference Unit

вот мое определение шага:

Given /^I am logged in as the following user:$/ do |table|
  sign_up valid_user
end

When /^I go to the new Reference Units page$/ do 
  visit new_reference_unit_path
end

When /^I fill in the following:$/ do |table|
    @reference_unit = Reference_unit.create!(table.rows_hash)
end

Then /^it should create a new Reference Unit$/ do
  pending # express the regexp above with the code you wish you had
end

new_reference_unit_path находится в моей функции / support / paths.rb как:

when /the new Reference Units page/
  '/reference_units/new'

Выполнение этого в 3.1.3 следующее: красным:

Scenario: Adding Reference Units              # features/user_can_create_units.feature:10
When I go to the new Reference Units page   # features/step_definitions/user_create_unit_reference.rb:6
  Expected /Users/sam/apps/keriakoo/app/models/reference_unit.rb to define Reference_unit (LoadError)
  ./app/controllers/reference_units_controller.rb:4:in `new'
  ./features/step_definitions/user_create_unit_reference.rb:7:in `/^I go to the new Reference Units page$/'
  features/user_can_create_units.feature:11:in `When I go to the new Reference Units page'

Как я уже говорил выше. файл reference_unit.rb находится в правильном месте. Конечно, я не добавил никаких методов или атрибутов, ожидая, что огурец поможет мне в нужное время. Я уверен, что это что-то простое, но я попробовал всевозможные комбинации слов и заглавных букв, чтобы что-то расшатать, Сэм

1 Ответ

0 голосов
/ 26 января 2012

ОК, я думаю, что я нажал на подсказку.Покопавшись, я использовал опцию --backtrace на огурце, и она указала мне на зависимость с ключевым словом "const".ОК, это не нравится что-то в тексте.Просматривая информацию о моделях из двух слов, я могу сказать, что моя модель была правильной: ReferenceUnit.Но, глядя на мой вывод ошибок, он искал Reference_unit.Так что для смеха я изменил регулярное выражение для этого шага так: «Когда / ^ я перехожу на новую страницу ссылок на единицы измерения $», ошибка исчезла.Поэтому важен синтаксис первой строки, а не «freestylin», как я подозревал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...