Rspec контроллер тест с заводской девушкой - PullRequest
0 голосов
/ 22 апреля 2011

Я подозреваю, что просто очень глуп, и упускаю что-то очевидное.Но я довольно новичок в rspec и фабриканте и не могу заставить этот простой тест работать.

Обычно я настроил модель с именем page и вызываю ее в контроллере следующим образом:

@pages = Page.where(:page_type => "homepage").limit(2)

, поскольку в моем тесте я делаю следующее:

before do
     @pages = [Factory(:page), Factory(:page, :title=> "Contact", :content=>"contact content", :meta=>"meta content", :page_type=>'homepage') ]
     get 'index'
end

it 'should set the pages variable' do
   assigns[:pages].should_not be_nil
   assigns[:pages].length == 2;
end

пока все, что я получаю, это:

Failure/Error: assigns[:pages].should_not be_nil
expected not nil, got nil

Любая помощь с благодарностью

1 Ответ

0 голосов
/ 28 апреля 2011

Ваш контроллер устанавливает свою переменную @pages в значение nil.Скорее всего, это не присваивается вообще.Вы уверены, что фрагмент кода, который вы вставили:

@pages = Page.where(:page_type => "homepage").limit(2)

, вызывается в действии index вашего контроллера?Если это так, этот код установит @pages в пустой список, а не в ноль.

...