我想在需要身份驗證(通過設計)的Web應用程序上測試一個操作。具體的操作使用JavaScript,因此我申請了js
選項來規範這樣:請求規格爲JavaScript失敗,設計身份驗證
scenario "User wants to fax a single document", js: true do
reset_email
@doc = @user.documents.create(FactoryGirl.attributes_for(:document))
visit "/documents/#{@user.id}"
click_on "send_document_#{@doc.id}"
last_email.should eq(@doc)
end
控制器在電子郵件十歲上下的方式發送傳真。我不知道爲什麼;我沒有寫。無論如何,在(使用水豚使用RSpec)此功能規格的頂部,我驗證文件中使用
before(:each) do
# Signs in as an admin
@company = FactoryGirl.create(:company)
@subscription = FactoryGirl.create(:admin_subscription, company_id: @company.id)
@user = FactoryGirl.create(:user, company_id: @company.id)
login_as @user, scope: :user
end
所有其他規格(這還需要登錄)依然通過,有我認爲它必須做與JavaScript。因此,js
選項在Firefox中打開瀏覽器,並且該頁面不是正確的內容。它說
500 Internal Server Error
undefined method `status' for nil:NilClass
我在網上搜索,發現只有迴應說,不要在我的叫response
或action
控制器動作。放心,我沒有這樣的行爲;只有RESTful行動以及兩個加法:
def send_document
@to = params[:to].gsub(/([() \-]+)/, '')
#The below parses the number to format it for InterFax
#It adds a "+1" to the front, and a dash in the middle
#of the number where needed.
@to = "+1"[email protected][0..-5]+"-"[email protected][-4,4]
@document = Document.find(params[:id])
DocumentMailer.send_document(@to, @document).deliver
render :template => false, :text => 'true'
end
def email_document
@to = params[:to]
@document = Document.find(params[:id])
DocumentMailer.email_document(@to, @document).deliver
render :template => false, :text => 'true'
end
任何人都可以幫助理解這些錯誤嗎?很多此應用程序使用javascript,並且我確實需要一種方式來在登錄時測試這些操作。