2011-09-30 32 views
5

我試圖用摩卡在我的Rails 3的項目,但不斷收到以下異常:NoMethodError:未定義的方法`模仿'與摩卡和Rails 3

NoMethodError: undefined method `mock' for #<MochaTest:0x00000101f434e8> 
    /Users/John/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.0.10/lib/action_dispatch/testing/assertions/routing.rb:175:in `method_missing' 
    test/functional/mocha_test.rb:7:in `block in <class:MochaTest>' 

測試

我已經寫了可能是最簡單的測試:

require 'test_helper' 

class MochaTest < ActionController::TestCase 
    test "test mocha" do 
    order = mock('order') 
    end 
end 

我運行它使用ruby -Itest test/functional/mocha_test.rb

我試過rake test,它給出了完全相同的例外。

test_helper.rb中

ENV["RAILS_ENV"] = "test" 
require File.expand_path('../../config/environment', __FILE__) 
require 'rails/test_help' 

class ActiveSupport::TestCase 
    #.... 
    require 'test/unit' 
    require 'mocha' 
end 

的Gemfile

source 'http://rubygems.org' 

gem 'rails', '3.0.10' 
gem 'sqlite3' 
gem 'devise', '1.4.5' 
gem 'activemerchant' 
gem 'geo_location' 
gem 'nokogiri' 
gem "nifty-generators", :group => :development 
gem 'mocha', '0.10.0' 

事情我已經閱讀0.9.5後試圖

  • 安裝摩卡0.9.5 -7有這個問題。我得到一個undefined method name異常,而不是
  • 改變,我需要摩卡 - 在test_helper.rb中的底部,測試的頂等
  • 打過電話模擬()在軌測試控制檯 - 我得到相同的異常

我正在用這個撕掉我的頭髮。任何想法都會受到感謝。

回答

11

我在發佈之後立即找到答案。

這裏的答案:Mocha Mock Carries To Another Test

總之,我改變

gem 'mocha', '0.10.0'

gem 'mocha', '0.10.0', :require => false

和它的工作就像一個魅力!

+0

但是,即使我加載測試環境,我仍然無法在rails控制檯中使用'mock()'。煩人。 –

+0

是否能夠在rails控制檯中使用mock()? – user566245

相關問題