很多时候,当我在使用摩卡的单元测试中错过了期望时,它会吐出几十个或几百个“满意的期望”,而我真的不在乎。有很多我必须将测试输出重定向到临时文件,这真的很烦人。
我正在使用Rails 2.3和Mocha 0.10.0。
澄清一下,我有同样的问题 Mocha Mock Carries To Another Test ,那里的解决方案对我没用。然而,即使我能解决这个问题,我也想抑制“满意的期望”。
感谢。
答案 0 :(得分:1)
你可以通过猴子修补摩卡来实现这一目标。在Mocha::Mockery
上有一个方法可以返回满意的期望,你可以修补它以返回一个空数组:
module Mocha
class Mockery
def satisfied_expectations
[]
end
end
end
如果你把它放在test_helper.rb
中,它就会被拿起来。
或者为了更灵活一点,您可以选择仅在设置环境变量时隐藏它们:
module Mocha
class Mockery
def satisfied_expectations_with_optional
if ENV['MOCHA_HIDE_SATISFIED']
[]
else
satisfied_expectations_without_optional
end
end
alias_method_chain :satisfied_expectations, :optional
end
end
然后像这样运行你的测试:
> MOCHA_HIDE_SATISFIED=1 rake test