クエリは現在画面に表示されている要素のみを返すため、スワイプしてすべてのカードをひょうたんに表示し、それらを確認する必要があります。query("* id:'itemContainer'") が一度に 1 つしか見つからないと仮定すると、つまり、カードのサイズは画面全体になります。
12.times do
card_before_panning = query("* id:'itemContainer'")
pan("* id:'itemContainer'", :left)
card_after_panning = query("* id:'itemContainer'")
assert_not_equal card_before_panning, card_after_panning
end
一度に複数のカードが画面に表示される場合は、追加のチェックを行う必要があります。その時点で 2 つの可視性があると仮定すると、
11.times do
card_before_panning = query("* id:'itemContainer' index:0")
pan("* id:'itemContainer'", :left)
card_after_panning = query("* id:'itemContainer' index:0")
assert_not_equal card_before_panning, card_after_panning
end
# Then check that there are two visible on the final screen.
assert_equal 2, query("* id:'itemContainer'").size
これは、アプリ内でカードの表示が異なる場合、つまり内容が異なる場合にのみ機能することに注意してください。query("* id:'itemContainer'") が各カードに対して同一の結果を持っている場合、ひょうたんはそれらを区別して何かが変更されたかどうかを確認できません。