【发布时间】:2019-03-30 01:13:29
【问题描述】:
有一个私有方法,代码如下。
attr_reader :some_variable
validate :some_def
def some_def
unless some_variable.valid?
some_variable.errors.messages.each do |message|
errors.add(:some_variable, message)
end
end
我是 rspec 新手,不熟悉私有方法测试。任何帮助表示赞赏。
我需要覆盖私有方法的行。
【问题讨论】:
-
看起来像是验证测试 - makandracards.com/makandra/…
-
嗨,我已经浏览了链接,但无法理解。如果你能解释一下如何。谢谢。
-
IMO 您可以:初始化对象,将
some_variable值设置为无效,然后在您初始化的对象上调用valid?(它应该返回false)。然后,重复相同的操作,但为some_variable设置正确的值,并检查在调用valid?时是否得到true -
为私有方法编写测试不是一个好习惯。查看有趣的帖子stackoverflow.com/a/105021/398863
标签: ruby-on-rails rspec rspec-rails