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存根?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)