【发布时间】:2011-05-15 09:00:57
【问题描述】:
我有控制器:
class AccountController < ApplicationController
def index
end
private
def current_account
@current_account ||= current_user.account
end
end
如何使用 rspec 测试私有方法current_account?
附:我使用 Rspec2 和 Ruby on Rails 3
【问题讨论】:
-
这不能回答你的问题,但私有方法不应该被测试。你的测试应该只关心真实的东西——你的公共API。如果您的公共方法有效,那么他们调用的私有方法也有效。
-
我不同意。在你的代码中测试任何足够复杂的特性都是有价值的。
-
我也不同意。如果您的公共 API 有效,您只能假设您的私有方法按预期工作。但是您的规格可能是巧合。
-
如果私有方法需要测试,最好将私有方法提取到一个可测试的新类中。
-
@RonLugge 你是对的。有了更多的后见之明和经验,我不同意我三年前的评论。 :)
标签: ruby-on-rails rspec