1
私は次のテストを作るしようとしている:チェック)
it 'remove item from cart' do
visit cart_path
button = page.find("a[href='/carts/#{item.id}/remove']")
card = find_ancestor_with_class(button, '.card')
button.click
# check if card has been removed from page
end
次JSが削除されるため、このテストは仕事にsuppossedされますページからカード:.card
HTMLページから削除されている場合、私は確認する方法
$.ajax({
url: link,
method: "GET",
success: function() {
$('#alert-modal').modal('show');
$(button).closest(".card").remove();
}
});
?何かがページに表示されていない場合は、だから、全体的に、それはすべての場合にのみ動作します
visit cart_path
click_link(href: "/cars/#{item.id}/remove")
expect(page).not_to have_css(".card")
なり
expect(page).to have_no_css(".card")
または
expect(page).not_to have_css(".card")
を行うだろう確認するには
「カード」を使用して確認する方法はありませんか? –
@RodrigoChaves実際には、 'card'の正確な位置によっては、要素が削除されたときに' card'が実際に新しい要素を指し示すかもしれません - https://gist.github.com/ twalpole/ac5c893a6f1f27ba3005908421d3e45d - 'card'は、要素が削除されたときにページ上の3つの' .card'要素すべてを指しています。これは、動的ページリフレッシュ/リロードを扱うCapybaras自動リロードのためです。テストでは、特定の要素について心配するのではなく、ユーザーがページに表示する内容に重点を置くべきです。 –