我的控制器类继承自ActionController :: Base。
我正在使用rails 2和ruby 1.9.3。
我正在使用Mocha来存根对Perforce的调用,因此我的测试不依赖于与perforce的连接。
在我的rails after_filter中,我调用了我的一个存根方法,希望它还没有被取消。在正常的应用程序中,它会释放Perforce连接。
我收到此错误消息:
意外调用:Api :: BuildsController.perforce_service()
方法perforce_service
是我抄袭的方法。我怀疑它已被Mocha取消后被调用,但我不确定。 Mocha是否相对于after_filter进行了取消录制?我该如何设计这个?
当我尝试在pry中手动存根和取消对象的方法时,在调用unstub之后该方法仍然可以调用,这不是我所期望的。我希望unstub将恢复原始方法,或者如果没有原始方法,则将其恢复为未定义方法的状态。它到底是做什么的?
注:
如果使用rails,Mocha文档会将其放在test_helper.rb中:
require 'mocha/mini_test'
但是,如果我将其添加到我的Gemfile并运行bundle install:
gem 'mocha/mini_test'
然后我收到一个错误:
Could not find gem 'mocha/mini_test (>= 0) ruby' in the gems available on this machine
我在这里做错了什么?