2013-07-17 2 views
3

У меня есть это действие контроллера контроллера.rails rspec render_template matcher

projects_controller.rb

def brief 
    #@project before_filter_da ataniyor 
    if @project.user_allowed_to_view_brief?(current_user) 
     @brief_notes = @project.brief_notes.order(:id) 
     @project_files = @project.project_files 
     render :action => :written_brief if @project.project_type.brief_template == :written 
    else 
     render :action => :hidden_brief 
    end 
    end 

И это мой projects_controller_spec.rb файл

context 'get :brief' do 
    it 'should be loaded successfully' do 
     sign_in @creative  
     @project.stub(:user_allowed_to_view_brief?).with(@creative).and_return(false) 
     get :brief, :id => @project.to_param 
     response.should render_template("hidden_gallery") 
    end 
    end 

и когда я запускаю этот тест, я сталкиваюсь ошибку, как это.

Failure/Error: response.should have_rendered("hidden_gallery") 
     expecting <"hidden_gallery"> but rendering with <"shared/_project_title, shared/_project_header, shared/_project_buttons, shared/_messages, projects/_brief, projects/brief, shared/_header, shared/_footer, layouts/application"> 
    # ./spec/controllers/projects_controller_spec.rb:63:in `block (3 levels) in <top (required)>' 

ответ

4

Я думаю, что последняя строка вашей спецификации должны прочитать вместо:

response.should render_template("hidden_brief")