Rocha after_filter是在Mocha自动调用unstub之前还是之后执行的?

时间:2016-11-03 19:03:43

标签: ruby-on-rails mocha

我的控制器类继承自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

我在这里做错了什么?

0 个答案:

没有答案