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