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


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

контроллер

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

спекуляция

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

Вывод

foo = 

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


37


источник


Ответы:


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


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

87



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

expect(assigns(:stickies)).not_to be_nil


13