Подтвердить что ты не робот

Rspec: тестирование назначения переменной экземпляра

Использование Rspec с Factory Девушка. Попытка проверить, какие данные назначаются в моем контроллере (и протестировать его). Каждое прочитанное сообщение говорит, что я должен получить что-то из назначений(), но он продолжает возвращать nill

контроллер

def index
 @stickies = Sticky.where(:user_id => current_user.id)
end

Spec

it "should assign stickies" do
  foo = assigns(:stickies)
  puts "foo = #{foo}"
end

Выход

foo = 

Я использую неправильный синтаксис? Есть лучший способ сделать это? Спасибо!!

4b9b3361

Ответ 1

Вы должны сначала вызвать действие


describe StickiesController do
  describe "GET index" do
    it "should assign stickies" do
      get :index
      assigns(:stickies).should_not be_nil
    end
  end
end

Ответ 2

Если вы используете rspec > 2.99, вы можете использовать:

expect(assigns(:stickies)).not_to be_nil