Rspec-rails, похоже, не находит мои модели - PullRequest
0 голосов
/ 26 апреля 2010

Я пробую rspec и сразу же бьюсь об стену, когда кажется, что она не загружает записи БД, которые, как я знаю, существуют. Вот моя довольно простая спецификация (тестов пока нет).

require File.expand_path(File.dirname(__FILE__) + '../spec_helper')

describe SomeModel do

  before :each do
    @user1 = User.find(1)
    @user2 = User.find(2)
  end

  it "should do something fancy"
end

Я получил исключение ActiveRecord::RecordNotFound, сказав, что не смог найти пользователя с идентификатором w / ID = 1 или ID = 2, который, как я знаю, существует. Я установил базы данных для тестирования и разработки так, чтобы они указывали на одну и ту же схему в файле database.yml, поэтому это не должно быть путаницей в базе данных. Я также запустил script/generate rspec после установки гемов (rspec, rspec-rails) и gem.config и environment.rb и test.rb. Есть идеи, что мне не хватает? спасибо.

EDIT

Кажется, я проводил тесты с rake spec:models, который опустошил базу данных и, следовательно, записи не были найдены. Когда я использовал % spec spec/models/some_model_spec.rb, все работало как положено.

1 Ответ

2 голосов
/ 26 апреля 2010

Вы не должны полагаться на тестовые данные, которые будут присутствовать в вашей базе данных, поскольку они могут (и часто так!) Изменяются. Во-вторых, вы не должны присоединяться к вашей базе данных тестирования и разработки в одной базе данных. Тесты должны выполняться на чистой базе данных, а не на той, что испорчена вашей разработкой.

То, что должен делать, - это настраивать данные специально для испытаний в виде приборов или с помощью инструмента, такого как factory_girl или машинист .

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