Я не могу ответить наверняка ... но запах кода для меня - это "before (: each)", определенный внутри помощника. почему бы тебе не попробовать:
#support/controller_macros.rb
module ControllerMacros
def login_user
@request.env["devise.mapping"] = Devise.mappings[:user]
@user = Factory.create(:user)
sign_in @user
end
end
и
#requests/some_spec.rb
require 'spec_helper'
describe "GET /guides/edit" do
before(:each) do
login_user
end
end
и если это не удается - возможно, он просто не может найти @request - в этом случае передайте его как переменную в login_user
Edit:
Похоже, вам, возможно, придется включить помощников по тестированию устройства.
rdoc говорит, что у вас должен быть этот файл:
# spec/support/devise.rb
RSpec.configure do |config|
config.include Devise::TestHelpers, :type => :controller
end
Не уверен, если это отличается от того, как вы уже получили его в spec_helper.rb
... выглядит очень похоже на меня.