【发布时间】:2015-12-11 16:47:19
【问题描述】:
在 Ruby 应用程序中,我有一个类(Resque Job),它的方法在使用后一个类的 id 调用时会影响不同类的值。
class ResqueKlass
def self.perform(id)
obj = EditKlass.find(id)
obj.update(value: 0)
end
end
我想用 rspec 来测试这个值确实在方法中被改变了
describe 'Something' do
let(:obj){FactoryGirl.create(:editklass)}
scenario 'Change obj value' do
ResqueKlass.perform(obj.id)
expect(obj.value).to eq(0)
end
end
这个测试失败了,它期望 0 它得到了在工厂女孩中设置的值。
我也尝试过不使用 factory girl create 'obj' 和 let 但这仍然不起作用。我在 ResqueKlass perform 方法中放置了绑定,我可以看到值正在更新。
PS 请记住,我是 Ruby 和 rspec 的新手。这些不是我正在使用的确切类,原因是实际的类包含一些敏感数据。
【问题讨论】:
标签: ruby-on-rails ruby rspec factory-bot