我可能会遗漏一些基本的东西,但我对此错误感到困惑:
型号代码:
class CachedStat < ActiveRecord::Base
def self.create_stats_days_ago(days_ago, human_id)
d = Date.today - days_ago.day
@prs = PageRequest.find(:all, :conditions => [ "owner_type = 'Human' and owner_id = ? and created_at = ?", human_id, d] )
end
end
规范代码:
it "should create stats for the specified number of days in the past" do
CachedStat.create_stats_days_ago(1, Human.first.id)
assigns[:prs].should eql("foo")
end
错误是:
undefined local variable or method `assigns' for #<Spec::Rails::Example::ModelExampleGroup::Subclass_1:0x2fbac28>
我觉得我忽略了一些显而易见的东西,但这对我来说是不可见的。有什么建议吗?
非常感谢! -Jason
答案 0 :(得分:1)
正如中微子所说,assigns
仅在控制器/视图规格中可用,它们在模型规范中毫无意义。
可以看起来像
it "should create stats for the specified number of days in the past" do
CachedStat.create_stats_days_ago(1, Human.first.id).should eql("foo")
end
答案 1 :(得分:0)
我可能在这里错了,但assigns
可能只在控制器规格中可用。
另外,请检查您的rspec版本。