0

我的控制器类继承自 ActionController::Base。

我正在使用 rails 2 和 ruby​​ 1.9.3。

我正在使用 Mocha 来消除对 Perforce 的调用,因此我的测试不依赖于与 perforce 的连接。

在我的 rails after_filter 中,我调用了我的存根方法之一,希望它还没有被取消存根。在正常应用程序中,它会释放 Perforce 连接。

我收到此错误消息:

意外调用:Api::BuildsController.perforce_service()

该方法perforce_service是我存根的方法。我怀疑它已经被 Mocha 取消了之后被调用,但我不确定。相对于 after_filter,Mocha 的取消存根何时完成?我应该如何构建这个?

当我尝试在 pry 中手动存根和取消存根对象的方法时,在我调用 unstub 后该方法仍然是可调用的,这不是我所期望的。我希望 unstub 将恢复原始方法,或者如果它没有原始方法,则将其恢复为未定义方法的状态。它的真正作用是什么?

笔记:

如果你使用 Rails,Mocha 文档说把它放在 test_helper.rb 中:

require 'mocha/mini_test'

但是,如果我将它添加到我的 Gemfile 并运行捆绑安装:

gem 'mocha/mini_test'

然后我得到一个错误:

Could not find gem 'mocha/mini_test (>= 0) ruby' in the gems available on this machine

我在这里做错了什么?

4

0 回答 0