在轨道中使用Rspec进行控制器测试

时间:2010-11-10 11:27:15

标签: rspec

我是Rails和Rspec的新手。 我的Rspec文件没有采用Controller的属性(as-instance variable)

assigns[:portal_news].should be_new_record

总是会出错:

You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.new_record?

有人能找到解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:2)

您将assigns视为哈希,但它是一个采用参数的方法:assigns(:portal_news)

更多信息:http://guides.rubyonrails.org/testing.html

答案 1 :(得分:0)

您的控制器方法应该是创建模型的新实例并将其分配给@ portal_news`,可能是这样的:

@portal_news = MyModel.new

我们需要查看相关控制器方法的内容以及失败的规范,以便能够帮助您解决这个问题。