我目前正在进行RSpec测试:
Rspec.describe Some::ServiceClass do
args = ['1', '2']
subject { described_class.new(args) }
describe '#finder_method' do
let(:user_1) { FactorGirl.create(:user) }
it 'returns the right number of users' do
expect(subject.finder_method.count).to eq(1)
end
end
end
这就是被测试的课程
module Some
class Service
....
# other methods used to identify the resource model
def finder_method
resource.all
end
end
end
期望:
resource.all
时,我预计let(:user_1) FactoryGirl.create(:user)
,在规范测试中,将填充users
表中的1行(测试环境)subject.finder_method
时,它将返回一个AR对象。 实际结果:
subject.finder_method
,它只是在AR对象上调用all
,返回#<ActiveRecord::Relation []>
任何人都可以解释为什么会发生这种情况? FactoryGirl创建的user_1
在哪里?
答案 0 :(得分:0)
啊!
let
是罪魁祸首......完全忘了被懒惰的评价。我需要睡一觉:(