如何指定空有多个活动记录关系rspec
在上面的代码中,我试图在测试中显式地记录categories在这里是一个空关系,或者换句话说user.categories将返回[],但是如果我指定[],它似乎不能很好地与用户模型中的每个函数配合使用 它表示每个类别模型都有未定义的方法 类别列表如下所示如何指定空有多个活动记录关系rspec,rspec,Rspec,在上面的代码中,我试图在测试中显式地记录categories在这里是一个空关系,或者换句话说user.categories将返回[],但是如果我指定[],它似乎不能很好地与用户模型中的每个函数配合使用 它表示每个类别模型都有未定义的方法 类别列表如下所示 let(:user) { FactoryGirl.build(:user, categories: categories) } context 'when the user has no categories' do let(:categ
let(:user) { FactoryGirl.build(:user, categories: categories) }
context 'when the user has no categories' do
let(:categories) { [] }
it { expect(user.category_list).to eq '' }
end
不幸的是,在用户模型中,这里没有足够的信息来回答这个问题,但这里有一个列表:
- 类别列表中每个呼叫有多少个?我最好的猜测是该方法有两个each调用,一个在
类别上。每个
和一个在内部变量
类别上,这将返回错误“NoMethodError:undefined method`each',for#{user.inspect}”
- 检查您与类别的关系
- 如果没有,则应返回
[]
- 此外,由于混合AR的方法有时会返回非数组,我建议使用
matcher,它将断言集合为空be\u empty
def category_list
# some code
categories.each do |category|
# some codee
end
end