同じキュウリ機能に 2 つの異なるツールを使用するかどうかは、テスト ドメインに依存し、どちらが最も適しているかについてです。Watir-webdriver が Capybara-webdriver よりもフロントエンド テストに適している場合、またはその逆の場合。Capybara (アジャイル用語を使用すると、デザイン スパイク) を調査して、慣れ親しんだものと比較するのに時間を費やす必要があります。慣れ親しんだフレームワークでは(私の経験では)非常に困難ですが、客観的になるようにしてから、変更の費用便益分析を行ってください。直接費用は時間/労力にすぎないかもしれませんが、それでもプロジェクトの実施に影響を与える可能性がある費用です。
Capybara は DRY プログラミングと非互換ではありません - Capybara のカスタム セレクターを使用すると、抽象化レイヤー (阿部が返信で述べているように) が可能です。これらが作成されたら、次のようにカスタム セレクターでカピバラ ファインダーとマッチャーを使用できます。
Capybara.add_selector(:slide_show) do
xpath { ".//div[contains(@class,'slideshow')]" }
end
Capybara.add_selector(:slide_show_element) do
xpath { ".//div[contains(@class,'slideshowelem')]" }
end
カピバラの検索を使用できます。
find(:slide_show_element, 'Sunset').click
Cucumber の観点からは、そのロケーター文字列をステップから渡すことができます。
And I Click "Sunset" in the "Holiday Pictures" Slide Show
このようなステップ定義を介して;
Given /^(?:I |)Click "(.*?)" in the "(.*?)" Slide Show$/i do |picture,slideshow|
within(:slide_show, slideshow) do
find(:slide_show_element, picture).click
end
end
2 つのフレームワークがワークフローに影響を与えていますか? そして、この 2 つを調整するには、容認できないほどの時間の損失が伴うでしょうか?