2013-03-18 14 views
6

Rails 3.2, RSpec 2.11. Makro kontrolera nie działa i wygląda na to, że został poprawnie napisany ze wszystkich przeprowadzonych przeze mnie badań. Oto kodMakro kontrolera RSpec nie działa

/spec/support/controller_macros.rb

module ControllerMacros 
    def login_user 
    before(:each) do 
     @request.env["devise.mapping"] = Devise.mappings[:user] 
     user = FactoryGirl.create(:user) 
     @current_user = user 
     sign_in user 
    end 
    end 
end 

/spec/spec_helper.rb

RSpec.configure do |config| 
    .... 
    config.extend ControllerMacros, :type => :controller 
end 

/spec/controllers/companies_controller_spec.rb

require File.dirname(__FILE__) + '/../spec_helper' 

describe CompaniesController, "index companies" do 
    context "for authenticated users" do 
     login_user 
     ... 
    end 
end 

Wyniki wykonania: niezdefiniowana zmienna lokalna lub metoda 'login_user' dla # (NameE rror)

Odpowiedz

2

Wydaje zostały wysłuchane here, trzeba zmienić extend do include

+0

Próbowałem tego. Takie same wyniki. – justindfunk

+1

Co się stanie, jeśli usuniesz przed (: każdy) ze swojego makra i umieścisz parametr login_user w przed (w każdym) bloku w specyfikacji? – omnikron

+0

również twój blok opisu wygląda trochę dziwnie, czy działa, jeśli usuniesz '," firmy indeksujące "'? – omnikron

1

Dodawanie typ Spec ustalone to dla mnie:

Przed:

describe Api::FooController do 
    . 
    . 
end 

Po:

describe Api::FooController, type: :controller do 
    . 
    . 
end 
+0

To powinna być prawdziwa odpowiedź. Podpisanie kodu nigdy nie jest odpowiedzią. – friedrich

Powiązane problemy