私はRailsでアプリケーションをテストしていますが、私は理解できません。基本的なCRUD機能を備えた「Families」という表があります。新しいビューで新しい "ファミリ"を作成するとき、タイトルが検証されない場合、新しいビューは再びレンダリングされるはずです。それはそうです。しかし、URLは「ファミリー/新規」から「ファミリー」に変わります。ビューとURLが一致しません。その結果、私のテストは失敗しています。なぜ私のURLにこれが起こっていますか?ここに私のテストでは、次のとおりです。ここでRailsのURLが表示されずに変更される
require 'rails_helper'
feature "Creating a family" do
scenario "A user creates a family with invalid title" do
visit '/'
click_link 'Create Family'
click_button "Create"
expect(page.current_path).to eq(new_family_path)
end
end
は新しいですし、私のコントローラにアクションを作成:
def new
@family = Family.new
end
def create
@family = Family.new(family_params)
if @family.save
redirect_to root_path
else
flash.now[:danger] = "There was a problem"
render :new
end
end
ファミリーモデル:右ここ
class Family < ApplicationRecord
validates :title, presence: true
end
あなたが見ているのは通常のレールの動作ですが、カピバラの待機中の再試行動作を打ち負かすので、 'e_'マッチャーで' current_path'を使用しないでください。代わりに 'have_current_path'マッチャー - ' expect(page).to have_current_path(new_family_path) 'を使用してください。 JS対応のドライバに移行すると、テストの安定性が大幅に向上します。 –