将方法重写为可单元测试的方法

时间:2013-11-07 21:05:31

标签: ruby-on-rails performance unit-testing activerecord ruby-on-rails-4

我发现我经常喜欢编写只查询数据库并返回结果的方法。这对于复杂的过滤器或查询“链接”非常有用。例如,这里是一个模型Clazz,代表学生的学术课程。 Clazz有很多Enrollment个。所以我写了这个方法来保持我的代码DRY,因为我经常使用这个标准。

class Clazz
    def cash_enrollments
        enrollments.where(payment_type: 'cash')
    end
end

随着我对单元测试的进一步研究,我注意到这种模式存在问题,因为它与数据库紧密耦合。在数据库事务运行时测试大型数据集时,问题会更加严重。

是否有“单元测试友好”方式来重写此代码?还有另一种常见模式会更好吗?

1 个答案:

答案 0 :(得分:0)