並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 107件

新着順 人気順

rspecの検索結果1 - 40 件 / 107件

rspecに関するエントリは107件あります。 テストtestrails などが関連タグです。 人気エントリには 『質とスピード(2022春版、質疑応答用資料付き) / Quality and Speed 2022 Spring Edition』などがあります。
  • 質とスピード(2022春版、質疑応答用資料付き) / Quality and Speed 2022 Spring Edition

    質とスピード(2022春版、質疑応答用資料付き)

      質とスピード(2022春版、質疑応答用資料付き) / Quality and Speed 2022 Spring Edition
    • 雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try

      (この話は最初Twitterに書こうと思ったけど、長くなるのでブログに書くことにしました) 僕はRSpecやMinitestでテストを書くのは得意ですが、常にテストファースト(TDD)で開発するとは限りません。 今業務でやってるタスクはこんなふうに進めてます。 雑に動くものを作る ↓ 見た目をきれいにする&機能を作り込む ↓ テストを書く ↓ リファクタリングする この順番で開発する理由を以下に述べます。 雑に動くものを最初に作る理由 最初は見た目とか、異常系とか、細かい仕様とかを無視して、正常系が一通り動くものを作ります。 これはこれから作ろうとしているものの認識が合っているかどうかをPO(プロダクトオーナー)に確認するためです。 実際に動く画面を見せると「こんな感じでOK」とか「ここはこういうふうにしたい」というフィードバックをもらうことができます。 また、開発者としてもコードを書きな

        雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try
      • リーダブルテストコード / #vstat

        「リーダブルなテストコードについて考えよう ~VeriServe Test Automation Talk No.3~」で使用したスライドです。 https://veriserve-event.connpass.com/event/243280/ 登壇動画はこちらで公開されています。 https://vimeo.com/742517199/e001ac43ac <参考リンク> Twitter https://twitter.com/jnchito Blog https://blog.jnito.com/ Qiita https://qiita.com/jnchito プロを目指す人のためのRuby入門[改訂2版] https://gihyo.jp/book/2021/978-4-297-12437-3 Everyday Rails - RSpecによるRailsテスト入門 https://

          リーダブルテストコード / #vstat
        • テストコードにはテストの意図を込めよう #vstat

          リーダブルなテストコードについて考えよう~VeriServe Test Automation Talk No.3~で発表した資料です。 【発表資料中のURL】 ※複数ページで出てくる場合は、初出のページ数に掲載 ◆P7 ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018V3.1.J03 ◆P17 リーダブルテストコード / #vstat ◆P43 見てわかるテスト駆動開発 ◆P46 JaSSTレポート(過去のJaSSTの講演資料などが載っています) ◆P47 Agile Testing Condensed Japanese Edition ◆P48 A Practical Guide to Testing in DevOps Japanese Edition ◆P49 The BDD Books - Discovery (Japa

            テストコードにはテストの意図を込めよう #vstat
          • なぜテストを書くの?(または書かないの?) 〜テストコードの7つの役割〜 / #tamarubykaigi01

            Tama Ruby会議01のキーノートとして発表したスライドです。 https://tama-rb.github.io/tamarubykaigi01/ 参加レポートはこちら。 https://blog.jnito.com/entry/2019/07/07/102734

              なぜテストを書くの?(または書かないの?) 〜テストコードの7つの役割〜 / #tamarubykaigi01
            • フロントエンドの複雑さに耐えるため実践したこと / readyfor-nextjs-first

              【READYFOR】実践!フロントエンド分離戦略::発表資料 https://readyfor.connpass.com/event/198730/

                フロントエンドの複雑さに耐えるため実践したこと / readyfor-nextjs-first
              • 【翻訳記事】BDDの考案者が執筆した記事「テストについて話し合わなくてはならない」を翻訳しました! - ブロッコリーのブログ

                目次 目次 はじめに(本記事の見どころなど) テストについて話し合わなくてはならない テストの目的 「うまくいかないかもしれないものは何ですか?」 なぜテストをするのですか? この場合に限り…… テスト駆動開発 〜テストについて語る前に説明が必要です〜 テストについて話しましょう なぜすべてのテストを自動化しないの? テストカバレッジは有用な指標ですか? 「テストをシフトレフトする」とはどういう意味ですか? いつ、どこでテストすべきですか? 十分なテストとはどれくらいですか? おわりに はじめに(本記事の見どころなど) 今回は著者本人の許可をもらった上で、「テストについて話し合わなくてはならない」(原題は「We need to talk about testing」)を翻訳したので紹介します。 dannorth.net 本記事はDaniel Terhorst-North(Dan North

                  【翻訳記事】BDDの考案者が執筆した記事「テストについて話し合わなくてはならない」を翻訳しました! - ブロッコリーのブログ
                • 過度なDRYは読みやすさの敵!?「リーダブルテストコード」という発表をしました #vstat - give IT a try

                  先日、このブログでもお伝えしましたが、「VeriServe Test Automation Talk No.3」というオンラインイベントで登壇してきました。 veriserve-event.connpass.com 申込者数はなんと1000人を超えていて、大変驚きました。 僕は「リーダブルテストコード」というテーマで発表しました。スライドはこちらです。 Twitterでたくさんシェアされたり、はてなブックマークがたくさん付いたり、こちらもすごい反響でビックリしました。 で、どんな内容だったの? ひとことで言うなら「テストコードを徹底的にDRYにしようとしちゃダメよ!」というお話です。 このネタは昔からQiitaやTwitterとかでことあるごとに話してきましたが、この勉強会であらためてなぜダメなのか、DRYに書かず、どう書くべきなのか、という話を力説してみました。 優秀なプログラマほど、「

                    過度なDRYは読みやすさの敵!?「リーダブルテストコード」という発表をしました #vstat - give IT a try
                  • 【最強レシピ】我が家に伝わる そうめんの薬味「きゅうりのヤツ」の作り方

                    日本列島、暑くなって参りました。新型コロナウイルスの影響でステイホームされている方も多いかと思いますが、ここ数日の東京は半袖でも十分な陽気ですよね。そんなこれからのシーズンに大活躍するのが「そうめん」です。 我が家は少なくとも週2、多いときは週4くらいで そうめんのお世話になるんですが、みなさんのご家庭ではどんな感じでそうめんを食べていますか? 今回はその辺りにも触れつつ、私(P.K.サンジュン)の実家に伝わるそうめんの薬味『きゅうりのヤツ』の作り方をご紹介いたします。 ・我が家流「そうめんの食べ方」 そうめんの主役はもちろん「そうめん」ですよね。加えて挙げるなら「つゆ」でしょうか。ただし、我が家ではやや捉え方が違って、そうめんが主役であることは間違いないんですが「薬味」も同じくらい重要なポジションを占めています。 なんなら、我が家のそうめんは「そうめんを利用して薬味を食べる料理」と言って

                      【最強レシピ】我が家に伝わる そうめんの薬味「きゅうりのヤツ」の作り方
                    • 実践ATDD 〜TDDから更に歩みを進めたソフトウェア開発へ〜 / ATDD by genba example

                      ソフトウェア開発において、不確実性にどのように立ち向かっていくかは大きな課題です。 PHPerとしては、開発中にいかにコード品質を上げるかといったことは大きな関心で、その一つの規律のとり方としてTDDを実践されてきた方は多いのではないでしょうか。 トークの表題であるATDDは、Acceptance Test Driven Developmentの略です。TDD Cycleよりももう一つ大きなスコープでのフィードバックループをテストによって駆動します。特にアジャイル開発の文脈で「Agile Testing」という一つのテーマ内で紹介されることが多い手法です。 ユニットテスト・コンポーネントテストをカバーするテストによって開発を駆動するTDDに対して、ATDDはよりビジネスフォーカスの強いテストによって開発を駆動します。ATDDの開発プロセスの実践によって、技術レイヤ横断的な製品全体の回帰テス

                        実践ATDD 〜TDDから更に歩みを進めたソフトウェア開発へ〜 / ATDD by genba example
                      • 最近のRails関係の仕事内容

                        RubyやRailsのアップグレードを主なマイルストーンとしつつ全体的に開発体験を良くしていくというタイプの仕事を請けることが多いのですが、仕事を依頼する側の視点に立ってみると「実際のところ業務に参加するとどういうことが行われるのか?」というのがやはり気になると思います。 実際、最近の打ち合わせでもその手の不安について相談されることがあったので、ここ1ヶ月でそれ系の仕事で出したPull Requestを元に、実際に何をやっていたかの例を挙げてみたいと思います。 開発環境構築手順や説明方法の改善 荒れたRuboCopの改善 .rubocop.ymlからTargetRailsVersionを取り除く DEPRECATION WARNING対応いろいろ 既存のメソッドと名前が被っているスコープを別名に変更 RSpecのpositional-argumentsを置換 activerecord-im

                          最近のRails関係の仕事内容
                        • サーバサイド開発にKotlinを全面採用! ビヘイビア駆動開発(BDD)をマイクロサービスに導入するNewsPicksが求める開発者体験は? - はてなニュース

                          ソーシャル経済メディアNewsPicksを開発・運営する株式会社ニューズピックスは2021年9月、これまでサーバサイドの主要な開発言語としてきたJavaに代えて、Kotlinをメインに採用する方針を明らかにしました。 ▶ NewsPicksのサーバーサイド言語をJavaからKotlinに切り替えるために - Uzabase Tech Androidアプリだけでなくサーバサイドも「Kotlinで開発できるようにする」というこの宣言の背景には、数年間にわたってマイクロサービスを中心にKotlinを採用してきた実績と知見の蓄積があるだけでなく、そういった現場からの挑戦をよしとするNewsPicksのエンジニア風土も大いに追い風となっています。 この挑戦をどのように進めようとしているのか? 開発者体験(DX)をどのように高めようとしているのか? NewsPicksのCTOを務める高山温さん(上写真

                            サーバサイド開発にKotlinを全面採用! ビヘイビア駆動開発(BDD)をマイクロサービスに導入するNewsPicksが求める開発者体験は? - はてなニュース
                          • Rails アプリケーションの不安定なテストを撲滅したい 〜system spec のデバッグ方法とテストを不安定にさせる要因〜

                            Rails アプリケーションの開発において、自分の変更に関係のないテストのせいで CI がコケるとストレスですよね?真っ先に直したくなりますよね?不安定なテストを直すのは大変な労力が要ると思ってませんか?実は、たいていのケースは簡単に再現確認ができるし、不安定になる要因もだいたい決まっているし、ログやスクリーンショットを見れば原因も簡単に特定できるんです! そんなわけで、日頃不安定なテストを潰している身として知見みたいなものをまとめてみました。 今回利用した環境は次のとおりです。 rails 6.0.0 capybara 3.29.0 selenium-webdriver 3.142.4 rspec-rails 3.8.2 Google Chrome 77.0.3865.75 (headless で使用) ChromeDriver 77.0.3865.40 (f484704e052e0b5

                              Rails アプリケーションの不安定なテストを撲滅したい 〜system spec のデバッグ方法とテストを不安定にさせる要因〜
                            • N予備校開発でのRSpecの書き方指針 - ドワンゴ教育サービス開発者ブログ

                              はじめに テストコード一般の考え方 壊れにくいテストを書く 実装した通りに動作することではなく、仕様通りに動作することをテストする テストコードはシンプルにわかりやすく書く 失敗の原因がわかりやすくなるように意識する RSpecの書き方 テストケース名をitの引数で明記する letよりもlet!を使う 通常の変数と同じ方針に基づいてlet!を利用する subjectを使わない 不要なcontextでのネストを避ける matcherを適切に使い分ける factoryのデフォルト値に依存しないテストを書く 参考にしたブログ記事等 付録:RuboCop設定 We are hiring! サムネイル画像 はじめに テストコードを書く習慣も、近年ではかなり一般的なものになってきました。 ドワンゴ教育事業のバックエンドチームでも自発的にテストコードを書く文化は根付いており、実際に計測はしていませんが、

                                N予備校開発でのRSpecの書き方指針 - ドワンゴ教育サービス開発者ブログ
                              • RSpecのテストコードを実行時に書き換えて実行速度を改善した話 - STORES Product Blog

                                CTOの藤村です。つい最近まで STORES ブランドアプリ のチームでRailsを書いていました。 STORES ブランドアプリ のRailsリポジトリではdatabase_cleanerを(strategy = truncationで)使ってテスト中のデータベースをリセットしており、このことがテストコードの品質、速度などで重荷となっていました。 これを、テスト実行時にテストコード自体を書き換えて改善する仕組みを作り、先日無事Transactional Testへの移行が完了しました。ということで気分がとてもよいので、どうやったか共有させてください。 課題 STORES ブランドアプリのRailsのテストコードは速度に課題がありました。 テストデータを片付ける仕組みとして、 Railsエンジニアにはお馴染みのdatabase_cleanerというGemを使っていました。database_

                                  RSpecのテストコードを実行時に書き換えて実行速度を改善した話 - STORES Product Blog
                                • 過度なDRYを行わず、APIドキュメントだと思って書く 脳内メモリを消費させない“リーダブルなテストコード”の書き方

                                  さまざまなテストレベルとロールで活躍されている方々がテストコードをリーダブルにする方法について語り、それぞれの違いや共通点について議論する、「リーダブルなテストコードについて考えよう」。ここで株式会社ソニックガーデンの伊藤氏が登壇。リーダブルなテストコードとは何か、リーダブルなテストコードを書くための具体的な意識を紹介します。 伊藤氏の自己紹介 伊藤淳一氏:リーダブルコードという発表です。いきなり余談から入りますが、今日仕事をしていたらテストコードに助けられました。 仕様変更がいつ入ったのかを調べなきゃいけなくなってコミットを追いかけていったら、過去の僕がすごくわかりやすいテストコードを書いていて、仕様Aを仕様Bに変えることがdiffを見れば一目瞭然というようなものを作っていました。リーダブルなテストコードを書いてて良かったと思った日がこの勉強会の開催日で、ナイスタイミングだと思いました。

                                    過度なDRYを行わず、APIドキュメントだと思って書く 脳内メモリを消費させない“リーダブルなテストコード”の書き方
                                  • APIテスト自動化ツールKarateをBDDツールとして使う - まっつんの日記

                                    Karateとは Karateは主にe2eテストを自動化するツール。cucumber的なfeatureファイルを書くとそれを実行できる。WebAPIのテストがその中心的ターゲット github.com graalvmのjsライブラリで実現しているっぽいので、featureファイルからJavaも呼べる。 個人的にBDDというのが結構いいと思っていて、ビジネスルールの仕様なんかをビジネスサイドと意識合わせする場合に使えると思っている。アンクルボブはFitnesseというツールを作っている。 FrontPage Fitnesseは名著『実践アジャイルテスト』でも紹介されていたもの 実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects' Archiveソフトウェア開発の実践) 作者:Janet Gregory,Lisa Crispin発売日: 2009/

                                      APIテスト自動化ツールKarateをBDDツールとして使う - まっつんの日記
                                    • 「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita

                                      はじめに テストコードを書くことは重要です。 テストコードがないアプリケーションよりもテストコードがあるアプリケーションの方が望ましいことは間違いありません。 ですが、テストコードも書き方を間違えると、アプリケーションが壊れているのに正しく検知できないテストを書いてしまう可能性があります。 この記事ではそんな「アプリケーションが壊れているのに正しく検知できないテスト」のコード例を「〜するべからず(〜してはいけない)」の形式で紹介し、その修正方法を説明していきます。 サンプルコードはRSpecで書いてます(でも他の言語でも考え方は同じはず) サンプルコードはRailsアプリケーションをRSpecでテストする場合を想定したものになっていますが、基本的な考え方自体は他の言語やテスティングフレームワークでも適用可能なはずです。 RSpecのイロハについて先に学んでおきたいかたは「使えるRSpec入

                                        「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita
                                      • Rails のブラウザテストを Playwright で動かすようにしたらデバッグが簡単になって捗った

                                        Omotesando.rb #91 (https://omotesandorb.connpass.com/event/299381/) で発表した資料です。

                                          Rails のブラウザテストを Playwright で動かすようにしたらデバッグが簡単になって捗った
                                        • FactoryBot the Right Way

                                          Kaigi on Rails ( https://kaigionrails.org )の登壇資料です。

                                            FactoryBot the Right Way
                                          • RSpecの作者が振り返る歴史(翻訳)|TechRacho by BPS株式会社

                                            概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: History of RSpec – Steven R. Baker 原文公開日: 2021/05/09 著者: Steven R. Baker 日本語タイトルは内容に即したものにしました。 私がTDD(テスト駆動開発)をチームで教え始めたのは2001年のことでした。当時のTDDはまだかなり新しい概念でしたので、テストを自動化したチームもほとんどなく、XP(エクストリームプログラミング)やTDDについて聞いたことがある人も皆無でした。テストを最初に書くことで設計を進めるという概念は当時まったく知られていなかったので、TDDを理解するのに皆とても苦労していました(20年経った今でも、この事実が完全に変わったとは言えません)。 思い返せば、あの当時は厳しい状況でした。最善を尽くしてTDDの概念を説明し、どうにかしてチームの関心を惹こう

                                              RSpecの作者が振り返る歴史(翻訳)|TechRacho by BPS株式会社
                                            • CircleCI上のRSpecによるテスト実行時間を25min -> 12minに短縮する技術 - ANDPAD Tech Blog

                                              株式会社アンドパッドのアカウント基盤チームでテックリードをしているid:shiba_yu36です。 最近自分のサイドプロジェクトとして、生産性を向上するために、CI実行時間の短縮化を行っていました。その結果、とくに時間のかかっていたCircleCI上のRSpecによるテスト実行時間を、25min -> 12minに改善できました。そこで今回はどのような流れでCIの実行時間を改善していったかについて、具体的に書いてみたいと思います。実行時間改善の勘所について参考になれば幸いです。 改善の流れ: CircleCIでボトルネック調査し、大きいボトルネックを解消する 実行速度改善の前に: Flakyなテストを一斉に直す 速度改善1: bundle installのキャッシュがうまく効いていなかった問題を修正 -> 4minの短縮 速度改善2: developブランチ以外ではカバレッジを取らないよう

                                                CircleCI上のRSpecによるテスト実行時間を25min -> 12minに短縮する技術 - ANDPAD Tech Blog
                                              • Rails 7.0 + Ruby 3.1でゼロからアプリを作ってみたときにハマったところあれこれ - Qiita

                                                Ruby on Rails Advent Calendar 2021の枠が空いていたので、あとから登録しました はじめに 個人的なプロジェクトになりますが、僕が翻訳しているRSpecの入門書「Everyday Rails - RSpecによるRailsテスト入門」を2022年前半にRails 7.0バージョンにアップデートしようと考えています。 そこでこの本の中で使っているサンプルアプリケーションをRails 7.0でゼロから作り直してみました。フロントエンド周りを中心に結構考え方が変わっている部分があったので、「ここでハマった!」とか「こういうポイントを押さえておくといいかも」という点をあれこれ書いてみます。 なお、Rails 7.0版のサンプルアプリケーションはまだ公開できる状態ではないので、公開はもうしばらくお待ちください🙏 今回作成したサンプルアプリケーションはこちらで公開してい

                                                  Rails 7.0 + Ruby 3.1でゼロからアプリを作ってみたときにハマったところあれこれ - Qiita
                                                • 【Ruby版】xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - give IT a try

                                                  はじめに テストダブル(Test Double)について、わかりやすく解説した技術記事はないかな〜と探していたところ、こちらのブログ記事を見つけました。 goyoki.hatenablog.com とても詳しく解説されていたので、まさに打ってつけだったのですが、ふだん僕はRubyを使っているのでサンプルコードをRubyにしてみたいな〜と思いました。 そこで今回のエントリでは、原著者の id:goyoki さんの許諾をいただいた上で、上記のブログ記事の説明文を維持したまま、サンプルコードだけをRubyに書き直してみました。(goyokiさん、どうもありがとうございます!) ただし、Ruby版のコードにあわせて説明文を改変した箇所もいくつかあります。 それでは以下がRuby版の「xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の

                                                    【Ruby版】xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - give IT a try
                                                  • 僕がRSpecでsubjectを使わない理由 - give IT a try

                                                    はじめに 僕は折に触れて「RSpecではなるべくsubjectを使わない方がいい」という発言をしています。 Qiitaとか見てるとRSpecのsubjectを愛用している人が多そうな印象なんだけど、僕はほとんど使っていません。「subjectは原則使わない。明らかにメリットがあるときにだけ例外的に使用する」が僕のポリシーです。ほら、RSpecの(元)メンテナさんもそう言ってるし。 https://t.co/Rp5EiIxCVb #Qiita pic.twitter.com/pMlN35ihEG— Junichi Ito (伊藤淳一) (@jnchito) 2019年5月28日 そもそもの話として、RSpecではsubjectは無理に使わない、というのが僕の持論です。なぜなら無理にを使うと、いびつなテストコードができやすいから。基本はsubjectなしで書く。明らかにsubjectが有効なと

                                                      僕がRSpecでsubjectを使わない理由 - give IT a try
                                                    • rspecを読みやすくメンテしやすく書くために

                                                      はじめに 読みやすくメンテナンスしやすいRSpecを書けていますか? RSpecはというかRubyはというか柔軟なので色々な書き方ができてしまいます。 ある程度の規模のテストコードでは、油断するとどこで定義されている let なのかわからないものが登場したり、なぜか作られる(あるいは作られない)謎のレコードでテストが失敗したり、そういった辛い目にあったりするのではないでしょうか。 僕がRSpecを書くときに意識していることをまとめてみました。 これを実践するようになってつらい現象にあうことはずいぶんと減り、ずいぶんと読みやすくなったんじゃないかなと思っています。 ※効果には個人差があります。 Ruby on Railsを使ったアプリケーションのテスト向けですがRuby on Rails以外でも使えると思います。 主に以下の影響を強く受けています。 RSpecとセットで使われることが多いFa

                                                        rspecを読みやすくメンテしやすく書くために
                                                      • GitLab RunnerをGCPでオートスケールさせて安く運用する - OPTiM TECH BLOG

                                                        こんにちは。Optimal Bizのサーバーサイドに関する開発を担当している伊藤です。 皆さんCIは何を利用していますでしょうか? Optimal BizではGitLab CI/CDを利用しています。 単体テスト・ビルド・デプロイ等CIの用途は多岐にわたりますが、実際にそれらを実行するPCを必要な数だけ常に起動しておくと無駄な料金がかかってしまいます。 そこで、今回はGoogle Cloud Platform(以降、GCP)のプリエンプティブル VM インスタンスをGoogle Kubernetes Engine(以降、GKE)でオートスケールさせることで、CIリソースを格安で確保する事例を紹介します。 利用例 Optimal Bizチームの場合は「RSpecをGitLab CI/CDを使って並列実行する」で紹介した大量の単体テストを約20台のノードで並列実行するために利用しています。 ざ

                                                          GitLab RunnerをGCPでオートスケールさせて安く運用する - OPTiM TECH BLOG
                                                        • 2020年のRailsでブラウザテストを「正しく」行う方法(翻訳)|TechRacho by BPS株式会社

                                                          概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: System of a test: Proper browser testing in Ruby on Rails — Martian Chronicles, Evil Martians’ team blog 原文公開日: 2020/07/14 著者: Vladimir Dementyev サイト: Evil Martians — ニューヨークやロシアを中心に拠点を構えるRuby on Rails開発会社です。良質のブログ記事を多数公開し、多くのgemのスポンサーでもあります。 日本語タイトルは内容に即したものにしました。画像は原文からの引用です。 本記事で、Ruby on Railsアプリケーションにおけるエンドツーエンドのブラウザテストのベストプラクティス集を学び、自分たちのプロジェクトに採用しましょう。JavaベースのSel

                                                            2020年のRailsでブラウザテストを「正しく」行う方法(翻訳)|TechRacho by BPS株式会社
                                                          • Railsの
システムテスト解剖学

                                                            Kaigi on Rails 2021 Day1 14:00-14:30 @YusukeIwaki 「Railsの
システムテスト解剖学」の発表資料です

                                                              Railsの
システムテスト解剖学
                                                            • モックしないテストも書く話 - STORES Product Blog

                                                              STORES 予約 でwebアプリケーションエンジニアをやっております。ykpythemindです。 皆さん、Webアプリケーションのテストを書いていますか。 モック(mock)を使っていますか。 今回は自動テスト上で、偽物だけではなく(要所で)本物を使おうよという話を書きます。 想定読者としては主にRuby on Railsを開発しているバックエンドエンジニアを想定しています。 モックとは 今回のモックの定義は以下にしておきます。 *1 実際の外部サービスや内部サービスの代わりをする偽のサービスを作成することです。 ref: https://circleci.com/ja/blog/how-to-test-software-part-i-mocking-stubbing-and-contract-testing/ Rubyでは外部サービスとの接合部で、 RSpecの allow(xx).

                                                                モックしないテストも書く話 - STORES Product Blog
                                                              • 時々失敗するE2Eテストの原因を計測して判別する方法について - おもしろwebサービス開発日記チラシの裏

                                                                Railsをお仕事で使っている方はみんなE2Eのテストで時々失敗するやつに苦労しているんじゃないかなと思います。 @mtsmfmさんの発表スライドが詳しいので基本的にはこれで大体のケースには対応できるはず。 スライド読むのがめんどくさい人向けに、一部抜粋かつ要約すると なんらかの要因(CSSアニメーションや画像のロード)でDOM要素が移動する場合にクリックをミスしてしまってテストが失敗するケースが「時々失敗するテスト」の大多数を占める という話になります。これを防ぐためにはCSSのアニメーションをオフにしたり、↓のようなメソッドを利用して画像が完全にロードするまで待ってからクリックする、という方法があります。 def wait_for_image_loading Timeout.timeout(Capybara.default_max_wait_time) do sleep 0.5 unt

                                                                  時々失敗するE2Eテストの原因を計測して判別する方法について - おもしろwebサービス開発日記チラシの裏
                                                                • RSpec では context 間の違いを表現するときにのみ let を使う - id:onk のはてなブログ

                                                                  Test which reminded me why I don't really like RSpec | Arkency Blog (日本語訳:Rails: RSpecが好きでないことを思い出したテスト(翻訳)|TechRacho by BPS株式会社) を見ての感想。 元のコードのイマイチなところは 4 つあって、 params を before で書き換えている *1 it "will succeed" の文言 it { is_expected.to be_success } と expect(result.success?).to eq(true) が混ざっている let が不思議な順序で連発されていて事前条件を読み解けない すべて、これによって何をテストしているのかが分かりづらくなっているという問題を引き起こす。 params を before で書き換えている let(:pa

                                                                    RSpec では context 間の違いを表現するときにのみ let を使う - id:onk のはてなブログ
                                                                  • お財布に優しいCI改善小ネタ集 - メドピア開発者ブログ

                                                                    こんにちは。サーバーサイドエンジニアの三村(@t_mimura)です。 主に保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariのサーバーサイド開発(Ruby on Rails)を担当しています。 今回はRailsシステムのCI時間をコスト追加なしで半減した話をします。 目次 前提 対象プロジェクト CIの状況 改善結果 改善内容 前提知識: CIのキャッシュ機能 webpack buildのキャッシュを活用 RuboCopのキャッシュを活用 ESLintのキャッシュを活用 Jestのキャッシュを活用 RSpec Jobをテスト特性ごとに分割 CircleCIのリソースクラスと並列数の最適化 採用しなかった・見送った改善候補 HAML-Lint, Fasterer, Brakemanのキャッシュを活用 Stylelintのキャッシュを活用 bootsnapを活用 Jestの

                                                                      お財布に優しいCI改善小ネタ集 - メドピア開発者ブログ
                                                                    • RuboCop RSpecからRuboCop CapybaraとRuboCop factory_botが切り出されたけど結局どうすればいいの? - ANDPAD Tech Blog

                                                                      こんにちは、 ydah です。最近はというと、料理への情熱が再燃してきました。一時期は作った料理を全て写真に残していたりとしていたのですが、いつの間にか記録を何も残さなくなっていました。何かしら記録を残すことで、前回よりも味も見た目も良くしようと思えるので、記録を残していくようにしたいと思います。やっていくぞ〜!! トマトとタコのパスタの近影 はじめに 5/11-13 に長野県松本市 まつもと市民芸術館 で開催された RubyKaigi 2023 の Lightning Talks で、 RuboCop RSpec チーム*1と RuboCop RSpec から、 RuboCop Capybara と RuboCop factory_bot を gem に切り出した話をしました。 rubykaigi.org 当日の発表スライドは以下です。 この記事では RuboCop RSpec を現在使

                                                                        RuboCop RSpecからRuboCop CapybaraとRuboCop factory_botが切り出されたけど結局どうすればいいの? - ANDPAD Tech Blog
                                                                      • 私のRSpecの書き方 / How I write RSpec

                                                                        技術広報として2023年度に頑張ったこと / What we did well in FY2023 as a DevRel

                                                                          私のRSpecの書き方 / How I write RSpec
                                                                        • CodeBuildでRSpecのテストレポートを表示する - ANDPAD Tech Blog

                                                                          はじめまして。サーバーサイドエンジニアの kinakobo です。 唐突ですが、自動テストの実行にはどんなCIツールを使用していますか? 色々と選択肢があると思いますが、自分は今までCircleCI、GitHub Actionsを使うことが多く、ANDPADに入社して初めてCodeBuildでテストを実行しました。 それまでCodeBuildを使ったのはDocker imageの構築くらいだったので、あまりテストの実行に向いている印象は持っていませんでした。 ですが調べてみると意外と機能が充実しており、中でもテストレポート機能は便利だと思ったので今回紹介したいと思います。 テストレポート機能とは AWS CodeBuild でのテストレポートの使用 - AWS CodeBuild テストレポート機能は、テストのレポートファイルをいい感じに整理して表示してくれる機能です。 CircleCIに

                                                                            CodeBuildでRSpecのテストレポートを表示する - ANDPAD Tech Blog
                                                                          • RSpec の Request spec をチームで改善していった話 - ANDPAD Tech Blog

                                                                            この記事は ANDPAD Advent Calendar 2022 の 7日目の記事です。 qiita.com こんにちは、ydahです。 先日のRubyWorld Conference 2022で燗酒の美味しさに感動していたのですが、ふと気がついたら島根の日本酒がたくさん我が家にいました。 気が付くと何故か我が家にいらっしゃった方々(不思議だ...) そして、また気がつくと枡や徳利、平盃も我が家にいらした(不思議ですね...)のでこれから寒くなるので、燗酒を飲んで温まっていこうと思います。 はじめに 本記事では私が所属しているANDPAD検査チームで取り組んだ以下のことについて紹介いたします。 Request specの改善についてやったこと チームとして改善タスクやリファクタリングを推進するための仕組み作り Request specの改善について 長年、様々な人によって書かれてきていた

                                                                              RSpec の Request spec をチームで改善していった話 - ANDPAD Tech Blog
                                                                            • たまに落ちるテストをいい感じにリトライするCircleCI Workflowsの設定 - hanachin temporary

                                                                              TL;DR rspec-retryは同じプロセスの中で再実行(問題: まじで落ちてるテストも再実行される、プロセスで保持してる状態が壊れると何度実行してももとには戻らない) bundle exec rspec Rerunは別プロセスで再度実行(2連ガチャ) bundle exec rspec bundle exec rspec この記事で紹介してるのは落ちたものに限って別プロセスで再度実行 bundle exec rspec --failure-exit-code=0 bundle exec rspec --only-failures 本題 夏といえばそうめん。流しそうめんって掴みそびれると落ちますよね。 こんかい紹介する.circleci/config.ymlはこちら! たまに落ちるRSpecのexampleを受け止めて、落ちたexampleだけリトライするCircleCIの設定です。

                                                                                たまに落ちるテストをいい感じにリトライするCircleCI Workflowsの設定 - hanachin temporary
                                                                              • 失敗したテストのログだけを出力するぞ - おもしろwebサービス開発日記

                                                                                表題の通りのことができるgem、CiLoggerが便利ですよという話です。 私達は大量のテストをCI上で実行しています。テスト結果を見れば失敗理由が自明なものもありますが、E2Eテストなどでよく起きる「たまに失敗するテスト」の調査はログやスクリーンショットなど、可能な限りの情報を集めないと根本原因がつかめないことが多いです。 そんなときに、特に考えずRailsデフォルトの設定(config.log_level #=> :debug)のままにしておくと、膨大なログの中から該当するテストに関連する行を探し当てる作業が必要になります。これは事前の準備なしではほぼ不可能です。 事前の準備として簡単に思いつく方法は、テスト前後で「どのテストが開始/終了したか」をログに出力することです。 config.around do |example| Rails.logger.debug("start exam

                                                                                  失敗したテストのログだけを出力するぞ - おもしろwebサービス開発日記
                                                                                • Rails Fixtures再考

                                                                                  [RailsWorld 2023] Untangling cables & demystifying twisted transistors

                                                                                    Rails Fixtures再考

                                                                                  新着記事