ruby-on-rails – 有没有办法撤消any_instance的Mocha存根?

ruby-on-rails – 有没有办法撤消any_instance的Mocha存根?,第1张

概述在我的控制器规格中,我是有效的?对于一些路由测试,(基于Ryan Bates nifty_scaffold)如下: – it "create action should render new template when model is invalid" do Company.any_instance.stubs(:valid?).returns(false) post :create 在我的控制器规格中,我是有效的?对于一些路由测试,(基于Ryan Bates nifty_scaffold)如下: –

it "create action should render new template when model is invalID" do  Company.any_instance.stubs(:valID?).returns(false)  post :create  response.should render_template(:new)end

当我单独测试控制器时,这很好.我的模型规格中也有以下内容

it "is valID with valID attributes" do  @company.should be_valIDend

在隔离测试时,这种方法再次正常工作.如果我为模型和控制器运行规范,问题就来了.模型测试总是失败为有效?方法已被删除.当控制器测试被拆除时,有没有办法删除any_instance的存根.

我通过以反向字母顺序运行测试来解决问题,以确保模型测试在控制器之前运行,但我真的不喜欢我的测试依赖于序列.

解决方法 您需要手动配置RSpec.

Rspec.configure do |config|  ...  # == Mock Framework  #  # If you prefer to use mocha,flexmock or RR,uncomment the appropriate line:  #  config.mock_with :mocha  # config.mock_with :flexmock  # config.mock_with :rr  # config.mock_with :rspecend

另外,请记住,Rspec提供了自己的方法来模拟对象.使用RSpec API或者您将无法从库抽象中受益.
http://rspec.info/documentation/mocks/message_expectations.html

总结

以上是内存溢出为你收集整理的ruby-on-rails – 有没有办法撤消any_instance的Mocha存根?全部内容,希望文章能够帮你解决ruby-on-rails – 有没有办法撤消any_instance的Mocha存根?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1285718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存