使用Sequel和Rspec测试类方法

时间:2017-11-21 00:57:02

标签: ruby class rspec sequel

如何使用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

0 个答案:

没有答案