我发现我经常喜欢编写只查询数据库并返回结果的方法。这对于复杂的过滤器或查询“链接”非常有用。例如,这里是一个模型Clazz
,代表学生的学术课程。 Clazz
有很多Enrollment
个。所以我写了这个方法来保持我的代码DRY,因为我经常使用这个标准。
class Clazz
def cash_enrollments
enrollments.where(payment_type: 'cash')
end
end
随着我对单元测试的进一步研究,我注意到这种模式存在问题,因为它与数据库紧密耦合。在数据库事务运行时测试大型数据集时,问题会更加严重。
是否有“单元测试友好”方式来重写此代码?还有另一种常见模式会更好吗?
答案 0 :(得分:0)