2014-07-09 11 views
2

gemfile 렌더링 :<"index">을 기대하지만 <[]>

source 'https://rubygems.org' 
gem 'rails', '4.1.1' 
gem 'mysql2' 
gem 'sass-rails', '~> 4.0.3' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.0.0' 
gem 'jquery-rails' 
gem 'turbolinks' 
gem 'jbuilder', '~> 2.0' 
gem 'sdoc', '~> 0.4.0',   group: :doc 
gem 'tzinfo-data', platforms: [:mingw, :mswin] 
gem 'devise' 
gem 'cancan' 
gem 'attr_encrypted' 
gem 'faker', '1.0.1' 
gem 'jdbc-mysql', '5.1.28', :platform => :jruby 
gem 'thinking-sphinx', '~> 3.1.0' 
gem 'kaminari' 
gem 'postmark-rails', '~> 0.5.0' 
gem 'slim-rails' 
gem 'strong_password', '~> 0.0.3' 
gem 'jquery-turbolinks' 
gem 'whenever', :require => false 
gem 'nokogiri' 
gem 'mechanize' 
gem 'prawn' 
gem 'render_csv', '~> 2.0.0' 
gem 'capistrano', '~> 3.2.0' 

group :development, :test do 
    gem "capybara", "2.2.1" 
    gem "cucumber-rails",  "~> 1.3.0", require: false 
    gem 'rspec-rails', '~> 3.0.0' 
    gem "factory_girl_rails", "~> 4.1.0" 
end 

gem 'hirb', group: :development 

사양/spec_helper.rb

ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment",__FILE__) 
require 'rspec/rails' 
require "capybara/rspec" 
include Capybara::DSL 

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} 

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

사양/지원/controller_macros.rb

module ControllerMacros 
    def login_admin 
    before(:each) do 
     @request.env["devise.mapping"] = Devise.mappings[:admin] 
     sign_in FactoryGirl.create(:admin) # Using factory girl as an example 
    end 
    end 
end 
,536,913 63,210

사양/공장/factory.rb

FactoryGirl.define do 
    factory :user do 
    email "[email protected]" 
    password "12345678" 
    end 
end 

class CategoriesController < ApplicationController 
    before_filter :authenticate_user!, :load_key! 

    def index 
    @categories = Category.where("user_id is null or user_id = ?", current_user).order(updated_at: :desc) 
    end 
    private 

    def category_params 
    params.require(:category).permit(:title) 
    end 
end 

사양/컨트롤러/categories_controller_spec.rb가

require 'rails_helper' 

describe CategoriesController do 
    login_user 

    it "redirect when something went wrong" do 
     get :index 
     expect(response).to render_template("index") 
    end 
end 

저를 부여 categories_controller.rb :

1) 뭔가 잘못
장애/오류 갔을 때 재 CategoriesController :는 render_template ("인덱스")
이 < "인덱스"를 기대>하지만 렌더링 .TO 응답 (예상)을 < []>

답변

5

먼저, 작업이 예상대로 작동하면 확인하고 마지막 출력으로 일부 출력을 추가하여 인쇄되었는지 확인하십시오. 다음과 같이 템플릿 렌더링을 테스트하려는 경우 render_views을 사용해야합니다.

require 'rails_helper' 

describe CategoriesController do 
    render_views 
    login_user 

    it "redirect when something went wrong" do 
    get :index 
    expect(response).to render_template("index") 
    end 
end 
+0

나를 위해 작동하지 않습니다. 오류가 여전히 존재합니다. –

+0

조치가 제대로 작동합니까? '@ categories' 할당 뒤에'puts 1'을 추가하고 스펙을 다시 실행 한 다음, 1이 인쇄되었는지 확인하십시오. –

+0

네, 맞습니다. CategoriesController에는 ** 전에 load_key! ** 함수가 추가되었습니다. 그것은 문제의 원인입니다. 답장을 수정할 수 있습니까? 나는 그것을 upvote 것입니다. –

관련 문제