如何使用rspec测试.total方法。该方法添加了plus_minus列的总和,其中player_id是x。
class Plus_minus < Sequel::Model
def self.total(player_id)
self.where(player_id: player_id).sum(:plus_minus)
end
end
当我这样做时:
puts Plus_Minus.total(10)
它确实有用,并且输出正确的值。
我遇到的问题是数据来自数据库并且无法预测。使用实例方法,我可以创建一个可预测的对象来进行测试。
修改 这是我的考验。首先,我试图像实例方法一样测试它。然后在阅读了为什么它总是失败的时候,我发现类方法的测试不同。
describe Plus_minus do
describe '.total' do
it "returns 1 when plus_minus is 1 and player_id is 10" do
#various ways of trying to setup the class.
expect(Plus_minus.total(10)).to eq(1)
end
end
end