(Deviseを介して)認証を必要とするWebアプリケーションでアクションをテストしようとしています。特定のアクションはjavascriptを使用するため、このjs
オプションを仕様に適用します。
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でCapybaraを使用して)、私はを使用して認証します
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アクションと2つの追加機能のみ:
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"+@to[0..-5]+"-"+@to[-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を使用しており、サインイン中にこれらのアクションをテストする方法が本当に必要です。