結論
within
を用います。
例
例えば、以下のような HTML があったとします。
(省略) <div data-testid="target_area"> <p>foobar</p> <p>fugafuga</p> </div> <div data-testid="not_target_area"> <p>barbar</p> <p>hogehoge</p> </div>
このとき <div data-testid="target_area">
~ </div>
の範囲内だけをテストの対象にしたい場合には次のように書きます。
within find('[data-testid="target_area"]') do expect(page).to have_content "foobar" expect(page).not_to have_content "hogehoge" end
上記のように書く際に expect
の引数は page
で大丈夫です*1。
*1:「指定範囲内の」"page" になる