Обрезание в rSpec и Rails3

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

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

Ответ 1

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

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

[UPDATE] В разработке wiki теперь есть подробное (и, вероятно, более современное) описание .

Ответ 2

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