[好吧......我的第一個問題,所以要溫柔。]問題的「後打造」我的色器件控制器rspec的
我使用的設計我的身份驗證,但我有自己的控制器來擴展會發生什麼當用戶被創建時。我在註冊(註冊)時創建「用戶」和「代理機構」。
在路線...
devise_for :users, :controllers => {:registrations => "registrations"}
我的完整的控制器......
class RegistrationsController < Devise::RegistrationsController
def create
super # creates the @user
@agency = Agency.create! params[:agency]
@agency.users << @user
@agency.owner = @user
@user.agency = @agency
@agency.save
@user.account_admin = true
@user.save
end
end
我的問題是,我想建立一個RSpec來檢查這些代碼。代碼似乎正在工作,但我在我的規格中拍攝了100%的代碼覆蓋率。這裏是我的整個規範...
require 'spec_helper'
describe RegistrationsController do
render_views
describe "POST create" do
it "creates an associated user" do
@agency = Factory.create(:agency)
@user = Factory.create(:user, :agency => @agency)
User.stub(:new).with({'name' => 'pat'}) { @user }
Agency.stub(:new).with({'name' => 'pat'}) { @agency }
post :create, :user => {'name' => 'pat'}
assigns(:user).should be(@user)
end
end
end
但是,我收到「後創建」的錯誤。以下是錯誤消息
Could not find devise mapping for path "/users?user[name]=pat"
,這是(我認爲)的「回扣路線」
user_registration POST /users(.:format) {:action=>"create",:controller=>"registrations"}
任何想法的相關行?
輕拍
我發現(通過試驗和錯誤),其將所述線 request.env [「devise.mapping」] = Devise.mappings [:用戶] 該規範測試導致該測試到現在執行。但我不太明白這條線是什麼 - 所以評論將不勝感激。 – Pat 2011-04-23 23:37:42