Приспособления направляющих, не загружающиеся с rspec

Так, я пытаюсь изучить rspec среду тестирования BDD в контексте проекта направляющих. Проблема, которую я имею, состоит в том, что я не могу, ни за что в жизни, заставить свои приспособления загружаться правильно в rspec описаниях.

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

Так или иначе вот код:

/test/fixtures/users.yml -

# password: "secret"
foo:
  username: foo
  email: foo@example.com
  password_hash: 3488f5f7efecab14b91eb96169e5e1ee518a569f
  password_salt: bef65e058905c379436d80d1a32e7374b139e7b0

bar:
  username: bar
  email: bar@example.com
  password_hash: 3488f5f7efecab14b91eb96169e5e1ee518a569f
  password_salt: bef65e058905c379436d80d1a32e7374b139e7b0

/spec/controllers/pages_controller_spec.rb -

require 'spec/spec_helper'

describe PagesController do
  integrate_views
  fixtures :users
  it "should render index template on index call when logged in" do
    session[:user_id] = user(:foo).id
    get 'index' 
    response.should render_template('index')
  end
end

И то, что я получаю, когда я выполняю 'спецификацию граблей':

NoMethodError in 'PagesController should render index template on index call when logged in'
undefined method `user' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_1:0x2405a7c>
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.5/lib/action_controller/test_process.rb:511:in `method_missing'
./spec/controllers/pages_controller_spec.rb:7:

Таким образом, это не распознает 'пользователя (: нечто)' как действительный метод.

Сами приспособления должны быть в порядке, с тех пор когда я загружаю их в дб разработки через 'грабли db:fixtures:load', я могу проверить, что нечто и панель присутствуют в том дб.

Я чувствую, что пропускаю что-то очевидное здесь, но я отрывал волосы весь день напрасно. Любая справка ценилась бы.

23
задан Fishtoaster 29 December 2009 в 20:40
поделиться

1 ответ

Если определить фиксаторы как "пользователи", то способ их использования - метод с тем же именем:

describe PagesController do
  integrate_views
  fixtures :users
  it "should render index template on index call when logged in" do
    session[:user_id] = users(:foo).id
    get 'index'
    response.should render_template('index')
  end
end

Сингуляр относится только к самому классу (User). Надеюсь, у вас еще остались волосы, если это ошибка с одной буквой.

.
33
ответ дан 29 November 2019 в 01:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: