タグ

capybaraに関するmooonymannのブックマーク (5)

  • E2Eテスト基盤開発を担当して - Qiita

    freee Engineers Advent Calendar 2016 12月17日担当の @futoase です。 現在、E2Eテスト基盤構築の担当をしています。1 Capybara、SitePrism および Selenium に触れていく中で自分や弊社メンバーから得た知見について記載します。 4点の内容となります。 Capybara + SitePrism Selenium E2Eの目的 E2E基盤構築を担当してみて思ったこと Capybara + SitePrism 同僚の @kompiro が Capybara + SitePrism を使うことを提案、フレームワーク化を行ってくれたのでテストケース作成に利用しています。2 Selenium/Appium Advent Calendar 2016にてSitePrismを利用したPageObjectsパターンを使ったテスト作成につ

    E2Eテスト基盤開発を担当して - Qiita
  • RubyでPageObjectsパターンを実装できる SitePrism のご紹介 - Qiita

    この記事はSelenium/Appium Advent Calendar 2016の10日目の記事です。 はじめに freee株式会社でアプリエンジニアをしている @kompiro と申します。普段は selenium をガリガリ動かしているエンジニアではないのですが、SitePrism というgemを使って PageObjects パターンを実装してみたら、想像以上に捗ったのでご紹介します。 SitePrism の特徴 SitePrism とは PageObjectパターンをCapybaraを使って実装するためのDSL です。 例えば google.com のページオブジェクトを SitePrism を使って定義すると下記のようになります。 # Pageの定義 class Home < SitePrism::Page set_url 'http://google.com' element

    RubyでPageObjectsパターンを実装できる SitePrism のご紹介 - Qiita
  • Capybaraを使って、Rails+JavaScriptの非同期な統合テストを書く | POSTD

    上からも分かるように、ページの読み込みが完了する前に、テストでリンク探しを始めたのにも関わらず、Capybaraは優雅にインタラクションを処理しています。 しかし、Capybaraがこれらの非同期の問題を処理してくれるにもかかわらず、成功したり失敗したりする一貫性のないテストにいとも簡単に陥ってしまうのはなぜなのでしょう。 競合状態の数を最小限に抑えて、Capybara APIを正しく使用するには、いくつかのコツがあります。 最初に適合するエレメントを見つける 悪い例 first(".active").click まだページに.active要素がない場合、firstはnilを返し、クリックは失敗します。 良い例 # 完全に一致するものが欲しい場合 find(".active").click # ただ単に最初の要素がほしいだけの場合 find(".active", match: :first

  • feature spec と capybara と CSS3 と 私 - 弥生開発者ブログ

    こんにちは。 開発チームのめろたん(@renyamizuno_)です。 マイブームはダンベルを持ち上げたり、下ろしたりすることです。 最近、学生時代の後輩と新年会して、どうしてもオニオンリングがべたかったので頼んだら じゃがいもをそのまま唐揚げにしたような物体が出てきて困惑しました。 オニオンリングという概念を超越したなにか pic.twitter.com/atYJXASPpm— マスター・めろたん (@renyamizuno_) January 22, 2016 中は生ですごく辛かったです。 はい。 今回はfeature specを安定させた話を書きます。 capybaraとCSS3 Misocaではcapybara-webkitを使ってfeature specを回しています。 ある日機能の追加がありfeature specを追加したのですが、そのfeature specがCIでたまに

    feature spec と capybara と CSS3 と 私 - 弥生開発者ブログ
  • CapybaraがJSの動作を待ってくれる仕組み - Qiita

    Capybara便利ですね。 うちではPoltergeistと組み合わせて使っています。 JSがらみのUIのテストをしていたとき、JSの動作完了を待ってくれず、テストがこけるという事があったので、JSを待つ部分の動作原理について調べてみました。 Capybara::Node::Base#syncronizeに実装がありました。 def synchronize(seconds=Capybara.default_wait_time) start_time = Time.now if session.synchronized yield else session.synchronized = true begin yield rescue => e session.raise_server_error! raise e unless driver.wait? raise e unless cat

    CapybaraがJSの動作を待ってくれる仕組み - Qiita
  • 1