Таблица Rails 2.3.5 заполняется приборами в конце теста, а не в начале - PullRequest
0 голосов
/ 06 мая 2010

Я начинаю с тестовой базы данных, содержащей схему, но без данных в таблицах. Я провожу тест, как это

cd test/
ruby unit/directive_test.rb

Я получаю сбои, указывающие на то, что код не нашел данных в таблицах данных. Тем не менее, я смотрю на таблицы после выполнения этого теста, и данные теперь находятся в таблице. На самом деле, если я немедленно запустил тест снова, я не получаю никаких сбоев.

Похоже, что прибор загружается в таблицу слишком поздно, чтобы один из моих модулей смог его найти.

  1. Когда загружаются приборы? После или до выполнения файлов app/model/*.rb?
  2. Если это после , когда модели выполняются, есть ли способ отложить загрузку?

Эта проблема также актуальна при запуске rake test:units, поскольку эта задача очищает данные теста после его завершения.

1 Ответ

0 голосов
/ 07 мая 2010

прежде всего посмотрите эту ветку и посмотрите, может ли она вам помочь.

если вы запустите тест rake для тестов на рельсы: модули наверняка загрузят все приборы перед запуском кода. если вы запускаете только тест, а ваш модульный тест не имеет ссылки на test_help.rb, возможно, он не загружает приборы. Вы должны попытаться запустить его через грабли.

Еще один совет, который я даю вам, это то, что вы забыли о приборах и используете фабрики (здесь я рекомендую factory_girl ). Требуется время, чтобы привыкнуть, но оно того стоит. Светильники слишком сложны в управлении, обновлении и т. Д.

есть еще один пост , мало объясняющий концепцию, стоящую за фабриками.

...