私は Capybara を使用して、徐々に強化された Web サイトの機能をテストしています。私の機能が場所の階層をナビゲートすることだとしましょう。非 JavaScript バージョンでは、さまざまな場所をクリックすると新しいバージョンのページが取得されます。強化された JavaScript バージョンは、非表示の要素を開いたり、Ajax を介して新しい情報をロードしたりします。
次のような非 JavaScript バージョンのテストを作成することから始めます。
When I visit the page for "UK"
And I click "London"
Then I should see the information for "London"
デフォルトの機械化ドライバーを使用すると、テストが失敗し、機能を開発すると、テストに合格します。
次に、@javascript でフラグを立てて、javascript バージョンの同一のテストを作成します。javascript ドライバーを使用してテストを実行し、機能が実装されているため、そのテストに合格します。(非 js フローを実行しています)。ただし、機能がまだ Javascript で拡張されていないため、この時点で JavaScript バージョンのテストが失敗することを望みます。
そのため、新しいページ全体がサーバーから送信されたかどうかを判断し、両方のバージョンの機能が機能することを確認するための優れた戦略を探しています。(これを pushState と統合する予定なので、変更された URL のテストは実行されません)