Rspec:测试实例变量的赋值

时间:2011-01-18 03:06:09

标签: ruby-on-rails ruby rspec

将Rspec与Factory Girl一起使用。试图检查我的控制器中分配了哪些数据(并对其进行测试)。我读过的每篇文章都说我应该能够从assigns()中得到一些东西但是它一直在返回nill

控制器

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

规格

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

输出

foo = 

我使用了错误的语法吗?有一个更好的方法吗?谢谢!

2 个答案:

答案 0 :(得分:88)

您必须先调用操作


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

答案 1 :(得分:14)

如果您使用的是rspec> 2.99你可以使用:

expect(assigns(:stickies)).not_to be_nil