2011-05-26 2 views
0

私は特有の状況があります - 独立して実行するとrspecファイルが失敗しますが、スイート全体の一部として実行すると正常に実行されます。railsコントローラ用の単一のRSpecファイルを実行している未定義のメソッド 'action'

Failure/Error: visit oauth_callback_path 
    NoMethodError: 
     undefined method `action' for MyController:Class 
    # <internal:prelude>:10:in `synchronize' 
    # ./spec/requests/login_spec.rb:xx:in `block (5 levels) in <top (required)>' 
    # ./spec/requests/login_spec.rb:xx:in `block (4 levels) in <top (required)>' 

簡体スペック:

require 'spec_helper' 

class MyController 
    def oauth_response 
    sign_in(
     ENV['TEST_ACCESS_TOKEN'], 
     ENV['TEST_ACCESS_SECRET']) 
    redirect_to root_path 
    end 
end 


describe 'logging in' do 
    it 'login' do 
    visit oauth_callback_path 
    response.should be_success 
    end 
end 
+0

'oauth_callback_path'のルートはどのように見えますか? –

+0

基本的な 'match 'oauth_callback' => 'my#oauth_response'' –

答えて

0

class MyControllerは魔法クラスローディングレールをブロックしているように見えます。どちらのテストでは、明示的にコントローラをrequireなければならない、または拡張子が、私はMyControllerApplicationControllerを拡張されていないという問題があると考えていMyController.class_eval

2

で定義されるべきです。そのため、方法actionMyControllerに対して定義されていません。

関連する問題