Rspec: тестирование присваивания переменной экземпляра - PullRequest
37 голосов
/ 18 января 2011

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

Controller

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 = 

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

Ответы [ 2 ]

88 голосов
/ 18 января 2011

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


describe StickiesController do
  describe "GET index" do
    it "should assign stickies" do
      get :index
      assigns(:stickies).should_not be_nil
    end
  end
end
14 голосов
/ 22 июля 2014

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

expect(assigns(:stickies)).not_to be_nil

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