在Rails 2.3.3项目中安装Mocha 0.9.7

时间:2009-08-17 16:04:44

标签: ruby-on-rails testing mocha

我使用:

安装了Mocha 0.9.7 Rails插件
$ script/plugin install git://github.com/floehopper/mocha.git

(刚按照http://mocha.rubyforge.org/中的说明)

然后,我在功能测试中定义了以下设置

def setup
  @controller.expects(:logged_in?).returns(true)
  @controller.expects(:admin_user?).returns(true)
end

运行测试会生成ff。错误:

NameError: uninitialized constant Mocha::Mockery::ImpersonatingName
    /test/functional/xxxx_controller_test.rb:x:in `setup'

在那之前,我看到了ff。测试日志顶部的错误:

/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/test_case.rb:12: warning: already initialized constant Mocha

这让我相信我在Ruby或Rails的路径上有一个旧版本的Mocha。问题是我找不到它。

我的猜测是否正确?如果是这样,这个旧版的摩卡在哪里?或者,我怎样才能找到它的位置?

1 个答案:

答案 0 :(得分:1)

根据http://selfamusementpark.com/blog/2009/07/30/rails233mochaconfusion/,我的猜测不正确。问题实际上是在测试框架之前加载了Mocha,这不是前者所期望的。解决方案是编辑RAILS_ROOT / vendor / plugin / mocha / init.rb以注释掉ff。行:

require 'mocha'

然后,必须在测试文件或帮助程序中明确要求Mocha,以确保预先加载测试框架。