Ich versuche, den folgenden Test zu machen:Überprüfen Sie, ob Capybara :: Knoten :: Element wurde von jQuery.remove entfernt()
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
Dieser Test arbeiten suppossed wird, da die folgende JS die entfernt Karte Seite:
$.ajax({
url: link,
method: "GET",
success: function() {
$('#alert-modal').modal('show');
$(button).closest(".card").remove();
}
});
Wie ich überprüfen, ob die .card
html von Seite entfernt wurde?
Aber es gibt keine Möglichkeit, mit 'Karte' zu überprüfen? –
@RodrigoChaves Nicht wirklich, je nachdem, wie 'card' sich befindet, wenn das Element entfernt wird, kann' card' tatsächlich auf ein neues Element zeigen, wie in der Demo zu sehen ist - https://gist.github.com/ twalpole/ac5c893a6f1f27ba3005908421d3e45d - wobei "card" auf alle drei '.card' Elemente auf der Seite zeigt, wenn Elemente entfernt werden. Dies liegt an Capybaras automatischem Neuladen, das mit dynamischen Seitenaktualisierungen/Neuladevorgängen beschäftigt ist. Tests sollten sich wirklich darauf konzentrieren, was der Benutzer auf der Seite sieht, anstatt sich um bestimmte Elemente zu kümmern. –