kun*_*nal 7 rspec ruby-on-rails mocking
我正在尝试使用rspec版本2.14执行测试用例,我收到了以下错误
undefined method `rspec_reset' for
Run Code Online (Sandbox Code Playgroud)
我想在类上使用rspec_reset.相同的测试用例正在使用rspec 2.13.1.那么在2.13之后rspec_reset方法可能不可用吗?
小智 15
resetRSpec 2.14.x中不存在该方法.相反,它是rspec-mocks项目的spec_helper.rb文件中定义的辅助方法.
module VerifyAndResetHelpers
def verify(object)
RSpec::Mocks.proxy_for(object).verify
end
def reset(object)
RSpec::Mocks.proxy_for(object).reset
end
end
Run Code Online (Sandbox Code Playgroud)
您可以看到此方法将重置操作委托给底层代理,而不是将其添加到相关对象的类定义中.
是的,在2.14中,rspec_reset不再像以前那样在所有对象上可用,如https://github.com/rspec/rspec-mocks/pull/250中所述.
虽然我找不到任何文档,但现在似乎有一个RSpec类方法reset,它将一个对象作为一个参数,并将有效地"撤消"对该对象所做的任何RSpec操作.
在https://github.com/rspec/rspec-mocks/blob/cee433c89125a3984df33c87eb61985613adce9b/spec/rspec/mocks/mock_spec.rb上有一个RSpec"示例",它仍然使用rspec_reset示例的描述,但现在使用了上述reset方法进行复位.在该示例的早期版本中,重置已完成rspec_reset.