現在、送信ボタンをクリックして before 句のフォームに入力する統合テストに問題があります。私はそれから使用します
it "has ..." do end
リダイレクトされたパスが正しいかどうかを確認します。ただし、最初の "it" ステートメントが完了すると、別のページにリダイレクトされ、そのページにいないため、連続するいくつかの "it" ステートメントは失敗します。
サンプル コード スニペットを次に示します。
...
context "when the correct information is entered" do
before {
fill_in 'Email', :with => 'test@test.test'
fill_in 'Username', :with => 'some_user'
fill_in 'Password', :with => 'Password'
fill_in 'Password Confirmation', :with => 'Password'
select 'foo', :from => 'user_type'
click_button 'Save'
}
it "has valid html" do
page.should have_valid_html
end
it "has current_path users/2" do
current_path.should == users_path+'/2'
end
...
したがって、ここでは、「有効な html を持っている」テストはパスしますが、「users/2」にとどまるのではなく「users」にリダイレクトされるため、2 番目のテストは失敗します。同様に、'it' ステートメントの順序を入れ替えても、同じ結果が得られます。
「前」を別の方法で行う必要がありますか、それとも他に考慮する必要があることはありますか?
助けてくれてありがとう、ボカ
編集:当然の情報です。選択フィールドがないことを除いて、コードの他の部分でもほぼ同じことを行いました。他のすべてのケースで機能した場合、それが問題になる可能性がありますか?