設計1.2紅寶石在軌道上測試註冊與設計
我在測試註冊時遇到了困難。當用戶點擊註冊時,他們已經登錄,我應該看到一條Flash消息。這有效,但我的測試失敗。不知道爲什麼。如何註冊工作?有沒有發生某種內部重定向?此步驟失敗:
Then I should see "You have registered successfully. If enabled, a confirmation was sent your e-mail."
在我的用戶模型中未啓用確認。
設計1.2紅寶石在軌道上測試註冊與設計
我在測試註冊時遇到了困難。當用戶點擊註冊時,他們已經登錄,我應該看到一條Flash消息。這有效,但我的測試失敗。不知道爲什麼。如何註冊工作?有沒有發生某種內部重定向?此步驟失敗:
Then I should see "You have registered successfully. If enabled, a confirmation was sent your e-mail."
在我的用戶模型中未啓用確認。
從技術上講,你不應該覺得需要對設計機制進行單元測試 - 寶石本身是經過充分測試的。我可以理解想要確保它的行爲方式與你配置它一樣,因此:
成功驗證後設計肯定重定向。它會設置flash消息,然後重定向到您在路由文件中設置的根目錄,或者如果您嘗試訪問站點內的頁面並重定向到登錄頁面,它會將您重定向回到您的頁面試圖訪問。
爲了您的測試,請嘗試測試您是否重定向到您在routes.rb文件夾中設置的根目錄。即在色器件的指令,它說,設置它像
root :to => "home#index"
所以,在您的測試嘗試是這樣的:
require 'spec_helper'
describe YourController 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
it "should redirect to root" do
get 'index'
response.should redirect_to(root_url)
end
end
您可以將閃光燈消息測試加入到這一點。希望這可以幫助!
這是測試輸出:(::)失敗的步驟(::) 預計以下元素的內容,包括「您已成功註冊啓用後,如果確認被髮送電子郵件。」: 你(RSpec :: Expectations :: ExpectationNotMetError) ./features/step_definitions/web_steps.rb:145:in'/ ^(?: | I)should see「([^」] *)「$ /' 功能/ registration.feature:38:在'那麼我應該看到「你已經成功註冊。如果啓用,確認已發送到您的電子郵件。「'我認爲你是被重定向的部分是問題,任何想法? – 2011-04-11 08:06:13