2015-05-04 58 views
1

我正在使用Mocha進行測試。未定義的局部變量或方法`模擬'爲主:對象

2.1.5 :047 > require 'mocha' 
    => false 

AFAIK這意味着mocha已經加載,應該沒問題。無論如何,嘲笑或磕碰時:

2.1.5 :048 > mock 
NameError: undefined local variable or method `mock' for main:Object 
    from (irb):48 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/console.rb:90:in `start' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/console.rb:9:in `start' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/commands_tasks.rb:69:in `console' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/commands_tasks.rb:40:in `run_command!' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands.rb:17:in `<top (required)>' 
    from ./test/dummy/bin/rails:4:in `require' 
    from ./test/dummy/bin/rails:4:in `<main>' 
2.1.5 :049 > Github.expects :repos 
NoMethodError: undefined method `expects' for Github:Module 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/github_api-0.12.3/lib/github_api.rb:56:in `method_missing' 
    from (irb):49 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/console.rb:90:in `start' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/console.rb:9:in `start' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/commands_tasks.rb:69:in `console' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/commands_tasks.rb:40:in `run_command!' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands.rb:17:in `<top (required)>' 
    from ./test/dummy/bin/rails:4:in `require' 
    from ./test/dummy/bin/rails:4:in `<main>' 
2.1.5 :051 > stub 
NameError: undefined local variable or method `stub' for main:Object 
    from (irb):51 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/console.rb:90:in `start' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/console.rb:9:in `start' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/commands_tasks.rb:69:in `console' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands/commands_tasks.rb:40:in `run_command!' 
    from /home/dawid/.rvm/gems/ruby-2.1.5/gems/railties-4.1.10/lib/rails/commands.rb:17:in `<top (required)>' 
    from ./test/dummy/bin/rails:4:in `require' 
    from ./test/dummy/bin/rails:4:in `<main>' 

戲弄是否應IRB工作或沒有?

回答

1

在包含Mocha::API之前,我有同樣的錯誤。這將include適當摩卡的方法,你ObjectModuleClass類,添加錯過功能,您的IRB會議:

$ irb 
Welcome to IRB. You are using ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]. Have fun ;) 
>> require 'mocha/api' #=> true 
>> include Mocha::API #=> Object 
>> mock #=> #<Mock:0x2da1ce8> 
>> stub #=> #<Mock:0x2d6a680> 
>> Object.expects :something #=> #<Expectation:0x256e878 expected exactly once, not yet invoked: Object.something(any_parameters) > 
+0

它不是工作壓力太大。無論如何,僅給出代碼示例是解釋事情的不好方法。 –

相關問題