Разработка Stubbing в rSpec и Rails3 - PullRequest
34 голосов
/ 02 августа 2010

Как бы вы заглушили Devise в Rails 3 с помощью rSpec.У меня есть модель UsersController и User.Оба из них связаны с Devise в данный момент, я пишу спецификации контроллера, и мне действительно тяжело с моими ожиданиями, так как Devise sign_in действительно мешает работе.

Любая вещь будетпомощь.

Ответы [ 2 ]

74 голосов
/ 18 августа 2010

Я обнаружил, что теперь это довольно легко сделать. Была проблема с rspec2 и devise, но теперь она решена. Я думаю, вам нужно обновить свои драгоценные камни. Тогда вы можете написать

require 'spec_helper'

describe DoStuffController do
  include Devise::TestHelpers

  before (:each) do
    @user = Factory.create(:user)
    sign_in @user
  end

  describe "GET 'index'" do
    it "should be successful" do
      get 'index'
      response.should be_success
    end
  end
end

[ОБНОВЛЕНИЕ] В вики устройства теперь есть подробное (и, возможно, более современное) описание

9 голосов
/ 05 августа 2010

Вы можете попробовать насмехаться над базовым надзирателем (http://wiki.github.com/hassox/warden/) объект, на который полагается разработка, вот ссылка на некоторые детали о том, как вы можете сделать это с помощью RSpec: http://www.michaelharrison.ws/weblog/?p=349 (запись охватывает некоторые другиеТемы, решение, которое вы хотите, находится внизу страницы.)

...