我通过将逻辑移动到模型来重构我的控制器。当他们有如此多的逻辑(也无法在控制器中重用逻辑)时,我发现很难测试我的控制器方法。现在我想了解如何为这些控制器编写规范。我正在关注this testing guide。
以下是一个例子:
def dashboard
@sorted_deals = Deal.deals_for_user(current_user)
end
这会调用一个类方法,该方法具有一些逻辑,可以找到相关的交易并对它们进行适当的排序。再次测试deals_for_user
感觉就像是复制(我已经在我的模型规范中对它进行了测试)。如何在没有不必要的重复的情况下测试此方法?这是使用模拟还是存根的情况?
答案 0 :(得分:0)
关于Rails中控制器测试的有用性存在争议。我个人测试了我的模型中的狗屎,我为控制器做的唯一真正的测试是使用无头浏览器(如Selenium和capybara)进行集成测试。如果您知道您的方法有效且经过测试,并且视图/关联逻辑可以工作并通过集成测试进行测试,那么控制器测试几乎是浪费时间。关于这一点还有其他意见,我绝不是一个大师,但我想我会投入我的$ 00.02。