2016-03-01 6 views
0

, поэтому я пишу тест для своего UserController и связанной с ним зависимости.RSpec - Функциональный тест - проверка синтаксиса

Я пытаюсь написать тест, который пользователь проверки не может получить доступ к странице show userB, но вместо этого перенаправляется на root_path. Я предполагаю, что синтаксические ошибки - это моя проблема, но я бы полюбил еще одну пару глаз!

require 'rails_helper' 

describe UsersController, :type => :controller do 

    # create test user 
    before do 
     @userA = User.create!(email: "[email protected]", password: "1234567890") 
     @userB = User.create!(email: "[email protected]", password: "1234567890") 
    end 

    describe "GET #show" do 
     before do 
      sign_in(@userA) 
     end 

     context "Loads correct user details" do 
      get :show 
      expect(response).to have_http_status(200) 
      expect(assigns(:user)).to eq @userA 
     end 

     context "No user is logged in" do 
      it "redirects to login" do 
       get :show, id: @userA.id 
       expect(response).to redirect_to(root_path) 
      end 
     end 
    end 

    describe "GET Unauthorized page" do 
     before do 
      sign_in(@userA) 
     end 

     context "Attempt to access show page of UserB" do 
      it "redirects to login" do 
       get :show, id: @userB.id 
       expect(response).to have_http_status(401) 
       expect(response).to redirect_to(root_path) 
      end 
     end 
    end 

end 
+0

Я уже добавлен в нужном DEViSE код конфигурации в rails_helper.rb –

+0

Что выход есть? Просто, что это не удалось? Какой из них не удалось? –

+0

У меня нет никаких сбоев, что на самом деле делает меня подозрительным. Выход: \t \t \t \t [webapp (master)]bundle exec rspec spec/controllers \t \t .. \t \t Finished in 0.09632 seconds (files took 6.2 seconds to load) \t \t 2 examples, 0 failures \t \t

ответ

1

Вы упускаете в «это» блок в

+0

Ах, черт! Спасибо друг! –

+0

Тест все еще проходит, поэтому я предполагаю, что остальная часть моей логики должна быть права! –

+0

круто, на боковой ноте, вы должны стараться не использовать реальные объекты db в тестах вашего контроллера ... Вы пытались использовать factory_girl или что-то в этом роде? –

Смежные вопросы