我正在使用Miniise在使用Devise的应用程序中编写测试,但我有一个小问题(我希望)。
我想检查用户密码是否正确。有办法
valid_password?(password)
拜访了需要我做的特定用户。
但是我的问题是,在此应用中,该方法被这种方式覆盖:
def valid_password?(password)
if condition
# some else code
else
super
end
end
是否有可能使用有效密码?来自super
(Devise)的单元测试?
在此先感谢您的帮助。 玛塔
答案 0 :(得分:1)
您可以通过某些“ hacky”方式来实现此目的,但是 right ™的方式是将测试构造为condition
为假。当然,执行此操作的方式取决于condition
的定义方式!
例如,假设该方法实现为:
def condition(password)
password.length < 10
end
在这种情况下,您只需使用长密码即可运行测试。
您可以(作为最后的手段)也将condition
方法存根以返回false-但这是不好的做法。这样一来,您的测试就不会成为现实,因为执行super
的实际情况可能无法满足。