PHPカンファレンス小田原2024での発表資料です https://fortee.jp/phpconodawara-2024/proposal/4d39c7ef-058c-4648-b1d7-5510497e0d81
【アンチパターン】Arrange、Act、Assert(AAA)を意識できていないRSpecのコード例とその対処法RubyRailsRSpec # トレーニングジムの予約システムを開発していると仮定してください describe 'キャンセル処理' do let(:user) { create :user } let(:reservation) { create :reservation, user: user, start_at: '2017-08-10 10:00'.in_time_zone } context '24時間前をすぎるとキャンセル料が発生する' do before do travel_to '2017-08-09 10:00'.in_time_zone reservation.cancel! end after { travel_back } let(:billing)
このサイトについて: 本サイトは、GitLab認定パートナーの「クリエーションライン株式会社」が「GitLab公式ドキュメント」を日本語に翻訳して一般公開しているものです。GitLab社は本サイトの運営に関与しておりません。公式情報や最新の更新については、必ず「GitLab公式ドキュメント」をご確認ください。本サイトに関するご質問やフィードバックは、「クリエーションラインのお問い合わせページ」までどうぞ。皆様の声をお待ちしております。本サイトは2023年8月時点(GitLab 16.3)の情報を元に翻訳しております。更新情報については定期的にご確認をお願いいたします。機械翻訳を使用しており、誤訳や難解な表現があるかもしれません。改善のためのリソースが限られているため、ご理解をお願いいたします。お知らせ: Tech関連記事(アジャイル&DevOps、クラウドネイティブ、データマネジメント、生
保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像 ~Software Design 2022年3月号「そろそろはじめるテスト駆動開発」より 今回、Software Design 2022年3月号 第2特集「そろそろはじめるテスト駆動開発 JavaScriptでテストファーストに挑戦」の第1章「保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像」を本サイトに掲載します。第2章以降については、本誌『Software Design 2022年3月号』電子版(Gihyo Digital Publishing、Amazon Kindle)をご購読いただければ幸いです。 第1章では、混同されることの多い自動テスト関係の概念を、自動テスト、テストファースト、テスト駆動開発の3つの段階に分け、それぞれの効果や注意点を説明します。ソフ
Puppeteer、テスト自動化の次世代標準「WebDriver BiDi」に対応開始。Firefoxもサポートへ Node.jsでヘッドレスブラウザを用いたテスト自動化のためのフレームワーク「Puppeteer」が、ブラウザ自動化の次世代標準である「WebDriver BiDi」(「BiDi」は双方向を表すため、読みは「ウェブドライバー バィディ」とのこと)への対応を開始しました。 Puppeteerは、ChromiumベースのWebブラウザに対してChrome DevTools Protocolを用いて通信することで、Webブラウザの操作を自動化するとともに、コンソールに表示される情報やログなどの収集、画面キャプチャなどの取得によって、テストの自動化を効率化してくれる機能を備えています。 このPuppeteerが、現在策定中の次世代標準の「WebDriver BiDi」に対応を開始しま
新規開発の設計支援や古いコードベースを甦らせて欲しいという相談をもらったときに、最初にちょろっとコードだけお手本的なコードを書いてから引き渡しているのだが、そのときに必ず結合テストを書くようにしている。 3, 4年前から僕と付き合いがある人からすると、 「「「あの sadnessOjisan がテストを書くだと!!!」」」 という感じだと思うのだが、最近はテストに思うところもあってちゃんと書いている。 そしてそのテストコードだが、基本的にはアプリケーションから分離して書いている。その話をしたい。 OGP OGP は野方ホープで海苔が分離されて出てきた時の画像だ。 アプリケーションから分離したテストとはどういうことか 最終的にはテスト対象のサーバーを Docker コンテナで固めて、そのコンテナに対して HTTP リクエストを投げてその結果や DB の中身を検証するコンテナを docker
この記事は MICIN Advent Calendar 2023 の24日目の記事です。 前回はSaneさんの「データ基盤チームで社内インターンをやってみて」でした。 はじめに abekohです。MICINでMiROHAの開発をしております。 本記事では、書籍等から得た設計・実装パターンの知識や、実際にプロダクト開発で試して得られた経験などから編み出した、開発効率向上のためのWeb API開発のプラクティスを紹介します。 筆者が関わっているMiROHAは治験の業務支援を取り扱うプロダクトです。MiROHAの開発における特性として、以下のようなものが挙げられます。 治験業務に関するドメインが特有で複雑 前例が少なく、MVPを追求中。プロダクトのアプローチが頻繁に変わる 外部品質は高い水準が求められる これらの特性を意識して開発を促進させるために日々試行錯誤しております。 複雑なドメインに対す
はじめに 今回は無料で公開されているエンジニア向け修資料をまとめました。 資料の作り方も勉強になるので「勉強会で登壇している人」「企業の研修担当の人」にも参考にしてほしい内容になっています。 記事の主な対象者 研修資料を網羅的に見たい人 エンジニア初心者から中級者 研修資料の作成をしていきたい人 MIXI23卒新人研修 毎年更新をしているMIXIさんの資料は量と質が凄いです。各資料において、動画による解説もついているので、初心者でも理解しやすい構成になっています。 2023年版のMIXIさんの研修資料は下記の内容が学べます Git研修 データベース研修 設計・テスト研修 コンテナ研修 iOSアプリ開発研修 Androidアプリ開発研修 フロントエンド研修 ゲーム開発研修 Flutter研修 AI研修 セキュリティー研修 インシデントハンドリング研修 チーム開発研修 GMOペパボ GMOペパ
皆さんこんにちは。この記事では、筆者が最近業務中に経験した恐るべき罠についてシェアしたいと思います。 CIでユニットテストを実行することは、とても多くのプロジェクトで行われています。ユニットテストは特に、既存のコードの変更を自信を持って行うために必要なものです。弊社でも、CI (GitHub Actions) でユニットテストを実行しています。 あるとき、CIの挙動が不安定になったことをきっかけに、CI上でのユニットテストの実行について調べてみました。その結果、とんでもないことが判明したのです。 不安定になったCI 時折、CIにすごく時間がかかり、30分経ったあたりでタイムアウトしてしまうことがありました。そのときのログを見てみると、jestによるユニットテストが実行されている最中に、何のログも出力せずに突然止まっているようでした。そのようなときはリトライするとそこそこの確率で成功します。
アジャイル型の開発が導入されていない現場であっても、そして一人であっても、実践可能なアジャイルに関するプラクティスは存在します。 例えば、自動テストや、テストファースト、テスト駆動開発(TDD:Test Driven Development)です。ユニットテストフレームワークを使ってテストコードを書いて開発しながらテストを実行する「自動テスト」、実装の前にそのテストコードを書く「テストファースト」、テストと実装を繰り返しながらインクリメンタルに設計・開発を行うのが「TDD」。これらプラクティスのなかで、はじめの一歩となるのが自動テストですが、1人で実践するには、どこからはじめるか、どうテストを組み立てればよいのか、あるいは自分のテスト方法は適切なのか、不安を持つこともあるでしょう。 そこで本稿では、さまざまなチームや組織へのテスト手法の導入を支援し、精力的に講演や執筆などを行ってきたこの分
ウェブブラウザを自動操作する際には、WebDriverやChrome DevTools Protocol (CDP) などのAPIが広く利用されています。 これらのAPIを基盤に構築された様々なブラウザ自動操作フレームワークが、テスト自動化の分野で重要な役割を果たしています。 例えば、SeleniumやPlaywrightといったフレームワークを利用して、テストの自動化に取り組まれている方もいらっしゃると思います。 私もテスト自動化フレームワークの便利さを享受する一方で、フレームワークを介さずにブラウザを自動操作する方法についての興味がわいてきました。 そこで、この記事ではWebDriverやCDPが提供するAPIを直接利用してブラウザを操作する方法を基礎から探求してみることにしました。 これにより、私たちが普段利用しているフレームワークの背後にある原理を理解し、より深い知見を得ることを目
はじめに みなさん、DRY原則はご存知でしょうか? DRY = Don't repeat yourselfの略で「繰り返しを避けること」という意味ですよね。 良いコードを書くための重要かつ基本的な原則なので、みなさんよくご存知だと思います。 ですが、DRY原則はテストコードを書く場合は必ずしも最善にはならない場合があります。 他の人が書いたテストコードを見ていると、テストコードにDRY原則を適用したために、かえって悪いコードになっているケースをときどき見かけます。 この記事ではなぜテストコードをDRYにすると良くないのか、ということを説明します。 追記:タイトルを変更しました @t_wada さんのコメントを受けて、タイトルを見直しました。 「テストコードはDRYを捨ててベタ書きする」 => 「テストコードの期待値はDRYを捨ててベタ書きする」 【注意】この記事は画一的なテストコードの書き
こんにちは、SWETグループの田熊です。 現在SWETグループでは書籍「単体テストの使い方/考え方」の輪読会を実施しています。 輪読会ではメンバー同士で活発に意見が交わされていますが、著者の主張に疑問を感じる箇所もあり、一度グループ外の方とも意見を交換したいと考えていました。 そこで、t_wadaさんをお招きし「単体テストの使い方/考え方」についてディスカッションする機会を設けました。 本記事では、SWETメンバーとt_wadaさんとのやりとりを紹介したいと思います。 ディスカッションの流れ ディスカッションは事前にSWETグループのメンバーが書籍を読んで疑問に感じたテーマを挙げてもらい、t_wadaさんの意見を聞くという流れで行いました。 今回は次のテーマについて話をしました。 「退行に対する保護」があるテストとはなにか 「リファクタリングへの耐性」のトレードオフはあるのか 統合テストの
「インフラ技術基礎勉強会 #4」は、業務改善、業務効率化、自動化をテーマにした勉強会です。ここで「GitHubActionsで構築した自動化の仕組み」をテーマに奈良氏が登壇。GitHubActionsの基本と、AWS環境へのデプロイとテストの自動化について話します。 奈良氏の自己紹介 奈良貴充氏:こういった機会をいただきありがとうございます。「GitHubActionsで構築した自動化の仕組み」と題して、今回話します。よろしくお願いします。 今回ですが、7つのアジェンダでお話しします。「GitHubActions」を使っている方も多いと思うので、「こういったケースで使っているんだな」と聞いてもらえればと思います。 まず自己紹介します。私は凸版印刷というところで仕事をしています。主に新規サービスの立ち上げに関するシステム開発全般を扱っています。好きなものは日本のサブカルじゃないですが、漫画、
JavaScript で Array に対して処理する方法はいくつかあります。 Array が提供しているメソッドとループで処理した場合にどちらが速いのか調べてみました。 ※ 特に記載がない限り 2021 年 12 月 18 日時点の情報になります。 短い結論 普通の for ループが最速です。 とはいえ Array が提供するメソッドも十分に速いです。 可読性やコード量を考えると速度がとても重要かつ高頻度で呼ばれる処理以外は Array が提供するメソッドで問題ないと思います。 先行研究 2 年以上前の記事ですが次の記事でループ処理について調べられています。 それによると普通の for ループが最速だけど Babel や TypeScript は for...of を普通の for ループに展開するとのことでした。 ほかにも Array の処理について調べた記事がいくつかありました。 1
はじめに コードエディタ界の王様VisualStudioCode。開発の際に使っている方も多いのではないでしょうか。 本記事では、VSCode(VisualStudioCode)の定番機能を紹介していきます。 この記事を読んで、VSCodeマスターになりましょう! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 そもそもVSCodeって? VSCode(VisualStudioCode)はMicrosoft社が提供する無償のコードエディタです。2015年リリースですが、着々とユーザーを増やしており、2023年現在、世界で最もポピュラーなコードエディタの1つとなっています。 コードエディタって? 字や記号などのテキストで構
はじめに 株式会社マイベストでバックエンドエンジニアをしています、井上周(@isaka1022)です。 マイベストの開発組織において、2023年度の後半にかけて、バックエンドのテストの書き方の方針、ガイドラインの策定のプロジェクトを担当しました。 そもそもどのようにテストの書き方を決めるのか、また、ガイドラインとして機能させるためにエンジニア全員で共通認識を持てるものに仕上げるか、など考えることが多かったのですが、なんとか形にすることができたので今回はどのようにガイドラインを策定したか、その背景や経緯をお伝えできればと思います。 ガイドライン策定の背景 mybestのアーキテクチャには近年、Ruby on Railsに加えてNext.jsが導入されました。 それに伴い、バックエンドのテスト環境に大きな変化がありました。 それまでもテストの書き方のルールが決まっていなかったこともそうですが、
はじめに この記事では、 フロントエンドの開発において意義のあるテストはなにか? それらをコスパよく実現するためにはどうすればよいか? について考えて、作った構成を紹介します。 前提 下記の技術スタックを利用していますが、これ以外のスタックでも応用可能な仕組みが多いと思います。 Next.js Storybook playwright msw msw-snapshot (拙作) 注意事項 この記事の構成は、まだまだ実験的な機能だったり怪しい技術が一部採用されています。 msw-snapshot 拙作のライブラリであって、動作が怪しい可能性がめっちゃあります。 Next.js の testmode playwright + msw を実現するために必要でした。 まだまだ全然まともに動かないかもしれません。(サンプルリポジトリの単純なテストは動いた) サンプル 下記のリポジトリにサンプルを用意
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く