Phalcon フレームワークに PHPUnit を組み込む手順まとめ【実践メモ】

Webアプリケーションの品質を保つうえでユニットテストは欠かせません。
今回は、Phalcon フレームワークを使ったシステム保守の現場で、PHPUnit を導入した際の手順をまとめました。

各バージョンは以下の通りです。
・Phalcon 3.4.5
・PHP 7.2.34
・PHPUnit 8.5

1. PHPUnitを開発依存パッケージとしてインストール

composer で PHPUnit を追加します。
ローカル開発環境で使用するため、”–dev” オプションを付けてインストールします。

[/crayon]

2. composer.json へオートローダを設定

composer.json ファイルへテスト用クラスの自動読み込み設定を追加します。
PSR-4 に準拠して、”tests/” ディレクトリ以下のクラスを “Tests\” の名前空間で扱います。

[/crayon]

3. Phalcon Incubator の導入

Phalcon にはユニットテスト用の抽象クラスなどが用意された公式パッケージ “phalcon/incubator” があるため、それを導入します。

[/crayon]

4. Composer インストール

各依存ライブラリをインストールします。
フレームワークのバージョンに応じて依存ライブラリを変更せずに再構築したいため、次のコマンドでインストールを行います。

※ “composer update” はライブラリのバージョンが変わる可能性があるため、依存関係を崩さず、今回導入するもののみインストールします。

[/crayon]

5. オートロードを再構成

テストクラスを新しく追加した場合や “composer.json” を変更した際は、オートロードを再生成します。

[/crayon]

私の場合、ここでエラーが出ました。


エラーが出ると身構えますが、classが見つからないというエラーでした。
よくよく確認すると同じclassではあるものの、記述されるファイルによってディレクトリ名やクラス名のキャメルケースが揃っていないということがわかりました。
バージョンが古いため、今までは問題なく動いていたようですが、これを機に見直し修正しました。
その後は無事問題なくオートロードの再編成ができました。

6. テストの実行

準備が整ったら、実際にテストを実行します。
導入段階では “SampleTest.php” を作成し、”SUCCESS” と出力する簡単なテストを作成しました。

[/crayon]

ひと通り行った手順は以上となります。
上記テスト実行でも “SUCCESS” と帰ってきたのでホッとしました。

まとめ

初めての案件で Phalcon を触ったこともあり、苦戦しました。
Laravel も研修で少し触った程度の知識しかなかったため、理解が追いつかない部分も多かったです。
作業中はネットの記事を参考に進めました。
Phalcon を扱っている情報は、ある程度経験を積んだエンジニア向けに書かれているものが多い印象でした。
コマンドだけがさらっと書かれており、コマンドや設定の説明が少なく、自分のレベル感だと読み解くのに時間がかかりました。
また記事はPHPUnit単体の話が多く、フレームワークと組み合わせた話があまりありませんでした。
テスト導入を実際にやってみたところ、出てきたコマンドを一つずつ調べ、そのコマンドが何をしているのか、どのファイルにどう影響するのかを追いかけるところを並行する必要がありました。
エラーメッセージを頼りに原因を切り分けていく作業は大変でしたが、その分、フレームワークやツールの挙動を理解するきっかけにもなったかなと感じています。


パスキーって何だろう?

はじめに

24年入社の吉岡です。
いつ頃からでしょうか、Googleにログインする際に「パスキーを使用しますか?」と聞かれことが多くなった気がします。以前から気になっていたのでパスキーに調べてみることにしました。「分かっているようでまるで分かってない…」と思う無数の単語や用語に直面することとなり、改めて日々精進しなければと感じました。

パスキー(Passkey)とは
FIDO認証(FIDO2.0)というパスワードを使用しない認証で使用される認証器、本人確認を行うためのデバイスやソフトウェアです。
公開鍵暗号方式を用いており秘密鍵は端末側にのみ保存され公開鍵はサーバ側に保存されるので、ネットワーク上でパスワードを送受信する必要がありません。
さらに、端末のPINコード(ロック画面のパスワード)や生体認証(指紋認証や顔認証など)と組み合わせて鍵の生成と署名(秘密鍵を用いた暗号化)を行うので、多要素認証も兼ねています。

パスキーを用いたログインの流れ
1 ユーザがサーバに対してログインしようとする
2 サーバからユーザにチャレンジ(一度しか使用しない乱数)を生成し送信する
3 ユーザが端末内でPINや生体情報を用いて本人認証を行う
4 本人認証に成功するとチャレンジに秘密鍵を用いて暗号化 (署名)しサーバに送信する
5 サーバは公開鍵を用いて送信されてきた署名済みチャレンジを復号する
6 復号に成功するとサーバはユーザのログインを認証する

パスキーを使用するメリット
安全性
秘密鍵はユーザの端末以外に送信されることがないので、パスワードを盗まれたり推測されたりするリスクを抑えることができる。

利便性
パスワードを使用しないので複雑なパスワードを覚えておく必要がなくパスワードマネージャーも不要である。
パスキーをユーザの別端末と同期(クラウド同期)できるものであれば、1つの端末で登録すると複数端末からもログイン可能になる。

デメリット
対応サービスが限定的
パスキーに対応しているウェブサイトやアプリケーションは急速に増えつつあるが対応していないものも多くある。

バックアップ手段が必要
端末に紐づくためパスキーの場合を紛失した際や傷病による身体的な変化や認証用端末の故障で生体認証が困難になって際へのバックアップ手段が必要。

脅威がなくなるわけではない
より安全性の低い古いプロトコルや認証方式を強制するダウングレード攻撃が報告されており、パスキーを使用している=安全ではない。

実際に使ってみた
・スマートフォンからパスキーを用いてログイン(* 個人用に作成したアカウントです)
1 非ログイン状態でGoogleのログイン画面を開く

2 アカウント名を入力し、パスキーでのログインを選択する


3 パスキーを作成する

4 作成したパスキーを用いてログイン


5 ログイン成功

・PCでスマートフォンのパスキーを用いてログイン
1 PC:スマートフォンをBluetoothで同期する
2 PC:非ログイン状態でGoogleのログイン画面を開く


3 PC:パスキーと紐づいたアカウント名を入力し、パスキーでのログインを選択する


4 スマホ:GoogleレンズでPCに表示されたQRコードを読み込む(画像略)
5 スマホ:作成したパスキーを用いてログイン(画像略)
6 PC:ログイン成功

あとがき
パスキーを用いた認証はパスワード認証よりも安全だとは分かったのですが、端末が壊れたり変更したり場合を想定すると正直不安は残りますね…。
将来的には、業務でパスキー認証を使用したり組み込んだりするかもしれないので、引き続き注目していこうと思います。

tips:関連用語備忘録
パスキーについて調べる中で出てきた単語や用語を理解できていないと感じることが多くあったので、その一部を記載させていただきます。

認証とは
適切なアクセス権を持つ適切な人物やサービスがリソースに到達できるプロセス

・認証の三ステップ
1 識別 ユーザが誰であるかを確認(例 ユーザ名・アカウント名を入力)
2 認証 示した通りのユーザであるかを確認 (例 パスワード入力を入力)
3 認可 ユーザがアクセス権限を持っているかの確認 (例 システムがユーザ権限を確認)

・認証の三要素
知識情報
ユーザ本人だけが知っている情報
例 パスワード、認証番号、秘密の質問など

所持情報
ユーザ本人が所持しているもの
例 身分証明書、クレジットカード。スマートフォン、鍵、印鑑など

生体情報
ユーザ本人の身体に固有な情報
例 指紋、声紋、虹彩、顔、静脈など

・認証器
本人確認を行うためのデバイスやソフトウェアであり、鍵の生成と署名(秘密鍵を用いた暗号化)を行う。

FIDO認証
FIDO(Fast IDentity Online)はファイドと読み、ラテン語で信頼を意味する「Fido」が由来とされています。
FIDO1.0は専用のハードウェアが必要で、FIDOクライアントと認証器が分かれている
FIDO2.0はデバイス自体が認証器(プラットフォーム認証器)として使用できる。

・Web Authn(Web Authentication)
FIDO2.0の基幹を成しているブラウザと認証サーバ間の規格
Webブラウザに組み込むことでFIDO認証を行えるようにする標準API(Java Scriptで記述されている)

・CTAP2 (Client to Authenticator Protocol 2)
FIDO2.0の基幹を成している認証器とブラウザ間の規格
FIDO2.0に対応した端末と外部の認証器の通信の橋渡しを担い、多様な認証デバイスを利用できるようにする。
多様な認証デバイスの例 PINコード認証・生体認証・パターン認証

参考:

Googleが激推しする認証方式「パスキー」って何だ?パスワード …
厚生労働省:次世代認証技術「FIDO」
Passkey(パスキー)とは | 用語集 – CloudGate UNO

FIDO認証の落とし穴:ダウングレード攻撃による新たな脅威

2025年 新入社員ブログ 篠原06 [あれから8か月]

2025年4月入社の篠原です。

6回に分けて、今までの業務で学んだことや自分のことについて紹介します。今回はその6回目になります。見ていただけると嬉しいです。

今回は入社から8か月経って思ったことについてご紹介します!

社会人になって

私はこれまで学生として過ごしていたので、そんな私が社会人としてこれから過ごしていけるか不安で、特に業務をこなせるかどうかや、これからお世話になる方々に迷惑がかからないかなど様々な不安がありました。

実際に入社した当初も、入社初日は入社式、1週間後には外部研修が始まり、慣れないことばかりだったのでずっと不安な状態でした。
でも今は不安な要素はなくなりました。現在携わっている業務も、難しいことはたくさんありますが、なんとかやっていけていると思っています。私がそう思えたのも、周りの方々が支えてくださったおかげです。

これからも恩返しの意味も込めてしっかりと貢献できるように頑張りたいです!

変わったこと

私が入社したときと現在で比べて、一番変わったのはLaravelを使ったコードの書き方がかなり理解できたことや、JavaScriptなど、技術的な部分に関する知識が多く身に付いたことです。

研修でLaravelを学んでいた時に比べるとすごく成長しているのを実感していて、例えばとある処理を実装したいとなった時に、当時は調べたものの中にある関数やその中に出てきた言葉の意味も調べる必要がありました。
それに対して現在は、関数や言葉の意味も少しずつ分かってきて、悩む時間が減ったのをとても実感しています。

まとめ

これまで6回に分けてブログを書かせていただきましたが、改めて今までの自分を振り返ることができたのでよかったです!
特に専門学校でプログラミングを学び始めてから今に至るまで、すごく成長したことが分かりました!
これからもこの若きプログラマーを見守っていただけると嬉しいです!

今回のお話はここまでです!
最後までご覧いただきありがとうございました!

2025年 新入社員ブログ 篠原05 [好きなラジオを作れるAI]

2025年4月入社の篠原です。

6回に分けて、今までの業務で学んだことや自分のことについて紹介します。今回はその5回目になります。見ていただけると嬉しいです。

今回は好きなラジオを作れるAI、「NotebookLM」についてご紹介します!

タイトルにはわかりやすくラジオと書いていますが、正確に言うとラジオではなくポッドキャストです。
違いとしてはラジオというのは、リアルタイムで電波を通して聞くものを指し、ポッドキャストはインターネット経由で好きな時に好きなだけ聞くものを指します。

NotebookLMとは

NotebookLMとはGoogleが提供するAIアシスタントの一つで、資料を自動で要約してくれて、それを音声化してくれるものです!
つまり、AIがポッドキャストを作ってくれます!
資料は、Googleドキュメント、PDF、ウェブページURL、YouTube動画リンクなどを自分で選んでそれを送ることができます。

また、どのくらいの長さで音声化するかも決めることができます。標準に設定しておくと、大体15分程度のポッドキャストを聞くことができます。

女性と男性が実際のポッドキャストかのように会話しているものが生成され、何か作業しているときや、電車での移動中に聞くことできるのでおすすめです!

他の生成AIとの違い

従来の生成AIはインターネット上の膨大な情報をもとに回答を生成しているのに対し、NotebookLMはユーザーがアップロードした資料だけを参考にして回答を生成するので、どのくらいの範囲で要約してほしいかを自分で決められるのが特徴です。

これにより正確な情報に基づいた回答を生成するため、関係ない知識による誤回答を減らすことができます。

イメージとしては、

ChatGPT/Gemini
アイデアを出したいときや、AIが持つ幅広い知識を利用し、対話することに向いている

NotebookLM
資料について詳しく知りたい、要点を整理したい、それについての会話をラジオ感覚で聞ける

どちらのAIにも良さがあるのでうまく使い分けできるといいですね!

実際に生成してみた

使い方も説明しながら実際に生成してみます!

ブラウザでも操作できますが、今回は実際に使用する可能性の高いスマホのアプリで説明します!一度でいいのでぜひ試してみてください!

1.ログインする
まずはNotebookLMのアプリをダウンロードし、Googleアカウントでログインします。

2.ソースのアップロード
次に新規作成のボタンがあるので押してもらうと、ソースのアップロード画面に移ります。

ここでファイルをアップロードすることもできますが、今回は実際に検索してみようと思います。
上のウェブからソースを見つけるという欄で好きなテーマを調べます。今回は「おすすめのラーメン店」で検索してみます。

10件表示されるので、ここで自分がいいと思ったものだけチェックを入れることができます。今回はすべて選択してインポートを押して次に進みます。

3.音声生成
下にソース、チャット、スタジオという項目があり、スタジオというところで音声解説を生成することができます。
(ソースでは先ほどインポートしたソースを確認でき、チャットではチャット形式で質問ができたり、指示を出せます。)


スタジオを押すと、下にデフォルトで生成されたものがありますが、これは英語の音声になっています。上の音声解説を押してもらうと、日本語の音声を生成できます。

音声解説の横にあるペンのマークを押すと、長さや言語を変えることもできます。

実際に生成されたものを聞いてみると、ラーメンが今すぐ食べたくなりました。本当に人間が話しているみたいで、もはや怖いです…

少し長くなってしまいましたが、面白いのでぜひ試してみてほしいです!

今回のお話はここまでで、次回は入社から8か月経って思ったことについて話していきます!
最後までご覧いただきありがとうございました!

2025年 新入社員ブログ 篠原04 [基本情報技術者試験]

2025年4月入社の篠原です。

6回に分けて、今までの業務で学んだことや自分のことについて紹介します。今回はその4回目になります。見ていただけると嬉しいです。

今回は基本情報技術者試験に合格した時の勉強法についてご紹介します!

基本情報技術者試験とは

まず基本情報技術者試験とはどういうものなのかを簡単に説明します!
基本情報技術者試験とは、ITを活用したシステム開発に必要な基礎知識と技能を証明する国家試験になります。調べてみると、ITエンジニアの登竜門とも呼ばれているみたいです!
また、科目Aと科目Bに分かれていて、それぞれで6割以上の得点に達すると合格になります。

科目AはITの全体的な基礎知識が4択の問題で出され、科目Bはアルゴリズムとセキュリティについての問題が出ます。こちらも回答を選ぶタイプですが、より選択肢が増えます。
私は科目A試験免除制度という、科目AとBを別々のタイミングで受けることができる制度を利用しました。

科目A、Bどちらも難しいですが、私が受けていた時のおすすめの勉強法について説明します!

おすすめの勉強法

まずは科目Aですが、とにかく範囲が広いです!

テクノロジ系:41問
マネジメント系:7問
ストラテジ系:12問(2025年12月9日時点)

となっています。気の遠くなるような範囲ですが、当時授業以外で私が行った勉強法は一つだけです。それは「過去問道場」です!

過去問道場とは基本情報技術者試験ドットコムというサイトで運営されているもので、過去問題2920問(2025年12月9日時点)からランダムに出題してくれるWeb問題集になります。
分野を指定して出題させたり、選択肢をランダムに並び替えたりすることもでき、問題を解くたびに解説も見ることができます。

ログイン機能もあるので過去に何問解いたかなども見ることもできます。
私は当時これを2000問以上ひたすら解いて、科目Aはギリギリ合格点に達する事ができました。
余裕がある方は3000問、4000問とより多くの問題を解くといいかもしれませんね!

科目Bに関してですが、20問を100分で解かなければいけないのでしっかりと理解していないと、間に合いません。私は参考書を購入し、理解できるまで何周も読んでいました。参考書に関しては科目B対策のものであればどれもいいと思います!
そしてある程度理解できたら、科目Bのサンプル問題というものをIPAが提供しているのでそれをひたすらやっていました!
このように科目AもBも、根気強く学習するのが大事だと思います!

これから受験される方がいましたら、ぜひ参考にしていただければと思います!

今回のお話はここまでで、次回は好きなラジオを作れるAIについて話していきます!
最後までご覧いただきありがとうございました!

2025年 新入社員ブログ 篠原03 [業務で学んだ処理や関数]

2025年4月入社の篠原です。

6回に分けて、今までの業務で学んだことや自分のことについて紹介します。今回はその3回目になります。見ていただけると嬉しいです。

今回は業務で学んだ処理や関数についていくつかご紹介します!
主にLaravelで使えるものになります!

issetとemptyの違い

これはLaravelを使うときにまず覚えとかなければいけないものだと思いました!
よく条件分岐として使われますが、違いとしては、
issetは1や0を同じ値とし、nullは別のものとして扱いますが、
emptyは0とnullを同じものとして扱います!

例えば、

のように$valueに値が入っていたらという条件を作ろうとしたときに、!emptyだと、0をnullとして扱うので、結果はfalseになります。

「チェックボックスがOFFのときにvalue=0を送る」のような処理があった時に気を付けなければいけませんね!

前のページ(URL)を取得:url()->previous()

こちらは画面遷移したときに遷移する前の画面のURLを取得する処理です。
用途としてはこの画面から来たときはこの処理、こっちの画面から来たときはこの処理という風に条件として使用できます!

このようにすると、URLに/testが含まれていたらという条件をつくることができます!

配列

データの取得やデータの登録時に配列の関数をいくつか学んだのでごしょうかいします!

array_first():配列の最初の値を取得
array_key_first():配列の最初のキーを取得
array_last():配列の最後の値を取得
array_key_last():配列の最後のキーを取得
array_diff():配列同士で比べて差分を抽出する
array_unique():値が重複するものを削除する
array_key_exists():指定したキーが配列に存在するかを調べる

他にも便利だなと思ったものがたくさんありますが、今回はここまでにしようと思います。
今回紹介した関数をすべて知っているという方もいるかもしれませんが、まだまだ未熟なので温かい目で見守っていただけると嬉しいです!
今後も機会があれば紹介しようと考えています!

今回のお話はここまでで、次回は基本情報技術者試験について話していきます!
最後までご覧いただきありがとうございました!

2025年 新入社員ブログ 篠原02 [外部研修]

2025年4月入社の篠原です。

6回に分けて、今までの業務で学んだことや自分のことについて紹介します。今回はその2回目になります。見ていただけると嬉しいです。

今回は外部研修で学んだことについてご紹介します!

外部研修で学んだこと

4月から5月の約2か月間、私は新宿で外部研修を受けていました。そこで私が学んだのは、

・IT基礎
・Linux
・プログラミング入門
・MySQL
・PHPベーシック
・Laravel
・Git入門
・ソフトウェアテスト

そして最後にチーム開発演習として、Laravelを使ってフリマサイトの開発をしました。

今思うと、MySQLやGitなど、今の業務で使うこともたくさん学ぶことができたのですごくいい研修だったなと思います。
基本的には専門学校で学んでいたのですが、Laravelは未経験だったので、Laravelが始まった時は難しすぎて不安でしかなかったです。

しかし時間がたつにつれ徐々にMVCモデルを理解し、最終的にはチーム開発演習で貢献することができました!
この外部研修のおかげで今の業務をこなせているのであの時頑張ってよかったなと思います!

フォローアップ研修

8月から2026年2月までフォローアップ研修というものを受けています。
これはこれからの社会人として大事な論理的思考や、マナー等を身に着けるための研修で、現在も月に一度受けています。
リモートで自宅から受講しているのですが、他の参加者とのグループワークがあるので集中して受講することができます。

内容としては、

・ビジネス基礎研修
・ホウレンソウ研修
・タイムマネジメント研修
・ロジカルシンキング研修
・文章力向上研修
・ストレスマネジメント研修
・メンター研修

具体的な内容は割愛させていただきますが、タイムマネジメント研修やロジカルシンキング研修に関しては、今後の業務においても大事な考え方だと思いました。次回の研修は文章力向上研修です。
私は今こうしてブログを書いていますが、文章を作るのが苦手なイメージがあるんですよね。この研修を受けた後ならより見やすいブログが書けるのかもしれませんね!

今回のお話はここまでで、次回は業務で学んだ関数について話していきます!
最後までご覧いただきありがとうございました!

2025年 新入社員ブログ 篠原01 [プログラミングを仕事にしたきっかけ]

2025年4月入社の篠原です。

今回から6回に分けて、今までの業務で学んだことや自分のことについて紹介するので、見ていただけると嬉しいです。

今回は自分がプログラミングを仕事にしたきっかけについてご紹介します!

プログラミングを仕事にしたきっかけ

私がプログラミングを仕事にしたきっかけは、私は自分の好きなことで生きていきたいと考えていたので、その時にプログラミングを仕事にしたいと思いました。
そのころ自分はプログラミングでできることがあまりわからなかったので、身近なもので考えました。

そして思いついたのがWebサイトです!多くの人が使うものが自分の手で作れるようになればより多くの人の役に立てるのではないかと思いました!

初めてのプログラミング

私が初めてプログラミングをしたのは小学生の頃でした。それは今業務でやっているようなものではなくScratchという小学生にも扱えるようなわかりやすいものです。
Scratchはブラウザ上で使用でき、「〇歩動かす」「〇秒待つ」などのブロックを組み合わせて作るので、誰でも簡単に使用できるのが特徴です。
私はこれを学校で体験した当時すごく好きだったのを覚えています。

また、中学、高校の頃の情報の授業も、他の友達に比べて私はかなり熱心に取り組んでいました。その時に私はパソコンが好きなことに気づきました。
私は自分の好きなことで生きていきたいと考えていたので、その時にプログラミングを仕事にしたいと思いました。

専門学校で学んだこと

専門学校ではC言語やJava、PHPなど様々な言語を学びました。また卒業制作ではPHPを使っていたのでその頃の経験が今役に立っている部分もあるかもしれませんね。

また全体的な情報の知識をつけるために基本情報技術者試験を受験し、合格しました。
この時の知識はかなり忘れている部分があるので、いつかその時の知識を思い出して、応用情報技術者試験も受けてみたいと考えています!

今回のお話はここまでで、次回は外部研修で学んだことについて話していきます!
最後までご覧いただきありがとうございました!

新入社員ブログ 斎藤06[PHPUnitデータプロバイダ]

25年度入社の斎藤です。

 以前、斎藤04[PHPUnitについて]のブログでは、以下のようにテスト対象のクラスメソッドに対して、1つのデータだけを使って、メソッドの動作を検証しました。

※addメソッドに対して、引数(2,3)の場合のみ検証

しかし、上記の結果で得られる検証結果は引数が(2,3)の場合は正常に機能するということしか保証できません。
実際のテストでは様々な入力を用いて多角的に検証していく必要があります。PHPUnitにはそのための便利な機能として、データプロバイダ(DataProvider)があります。今回は、そのデータプロバイダの使い方について簡単に説明していきます。

データプロバイダの作成・紐づけ

 今回は斎藤04[PHPUnitについて]のブログですでに作成したテストコード(Sample_Test.php)を流用し、これにコードを追記することでデータプロバイダを利用することにします。
データプロバイダによるテストの対象はaddメソッドとします。

Sample_Test.php(以前のブログで作成済み)



1.データプロバイダの参照を追加
まず、データプロバイダがテストコード内で利用できるように以下の参照をテストコードに追加します。

2.テストメソッドを引数をとるカタチに修正
前回はテストメソッド(test_add)内で、テスト対象のメソッドであるaddメソッドを呼び出し、その引数にデータ(2,3)を直接記述しました。

以前のテストメソッド(test_add)

今回は、このテストメソッドを以下のように修正することで、任意の入力でaddメソッドを検証できるようにします。

修正1: addメソッドの引数を変数に変更する
add(2,3) → add($var1,$var2)

修正2: アサーションメソッドの期待出力値を変数に変更する
assertEquals(5,$result) → assertEquals($expected,$result)

修正3: テストメソッドがこれらの変数を引数として受け取れるようにする
test_add() → test_add($var1,$var2,$expected)

これらの修正を加えるとテストメソッド(test_add)は以下のようになります

3.データプロバイダを作成する
データプロバイダはテストメソッドの引数に合わせるように作成していきます。データプロバイダはメソッドとして作成することができ、テストメソッドの直下に記述します。以下の例(SampleDataProvider)にあるように、データの組み合わせによってパターン名を付けることをができます。このパターン名はテスト実行時に表示されるので、どのパターンの認証が成功し、失敗したのか一目で分かります。

データプロバイダの例(SampleDataProvider)


今回のテストメソッド(test_add)は

第1引数($var1): 任意の整数
第2引数($var2): 任意の整数
第3引数($expected): $var1と$var2の合計

よって、データプロバイダに用いるデータの組み合わせは以下のようなものが考えられます。
[任意の整数,任意の整数,2つの整数の合計値]
= [1,1,2][2,2,4][0,0,0][-1,-2,-3]…..etc

今回はデータプロバイダを以下のように定義します。
メソッド名: additionDataProvider

4.テストメソッドとデータプロバイダを紐づける
テストメソッド(test_add)の1行上にピッタリと乗せるように、以下の記述を追加します。これによってテストメソッドとデータプロバイダが紐づけられます。

以上で、データプロバイダの追加は完了です。テストコード全体は以下のようになります。

以下のテストコマンドを実行します。

これで、データプロバイダで作成した3つのパターンのaddメソッドの検証と1つのパターンのsubメソッドの検証が行われ、全ての検証が正常に終了したことが分かります。

最後に

 データプロバイダを使えば、テストメソッドを検証のパターンごとに何個も記述せずに済むため、テストコードがかなりスッキリしてとても便利であると感じました。特に境界値テストなど、似たようなテストを複数実行したい場合に重宝すると思います。

以上で今回のお話をおわります。
ありがとうございました。

新入社員ブログ 斎藤05[タイトル]

25年度入社の斎藤です。

今回は、お昼休憩のときに利用している弊社近辺のご飯を紹介していこうと思います。

なか卯

 弊社のある建物から徒歩10秒のところにお店がありますので、お昼休憩で食べる外食の回数、圧倒的No.1です。いつも黄身の乗った親子丼を食べています。
他のものはまだ食べたことがありません。海鮮丼やウナギ、うどんそばなど様々なメニューをとりそろえていますが、迷った末に結局親子丼を頼みます。

なか卯 三田店
https://maps.nakau.co.jp/jp/detail/2327.html

町田商店

 弊社から徒歩5分の場所にお店があります。
入社前から大好きなラーメン屋だったので、入社してすぐに食べに行きました。会社の近くにあって嬉しい反面、頻繁に食べるとカロリーがヤバそうなので、我慢しなくてはいけないのが少しつらいです。
トッピングはいつもネギチャーシューかホウレンソウにしています。

町田商店 高輪ゲートウェイ店
https://shop.machidashoten.com/japan/detail/112103

バンブルビー カフェ

 [カフェタイム]14:00~17:00に訪れました。見た目もオシャレで味も大満足でした。特にパンケーキにふんだんに使用しているジャムがとても濃厚で美味しかったです。
飲み物はオレンジジュースやコーヒーなどがあり、飲み放題でした。店内の雰囲気も静かで落ち着いているのでとてもリラックスできます。
パンケーキは何種類かあるようなので、他のパンケーキにも挑戦したいです。
ランチタイムは11:30~14:00にあるそうで、その時間帯にはまだ訪れたことがないので、そちらも行ってみたいなと思っています。

BUMBLEBEE CAFE 東急ステイ高輪
https://retty.me/area/PRE13/ARE16/SUB1301/100001511154/

最後に

 今回は、私がお昼休みに利用しているご飯を紹介させていただきました。
高輪ゲートウェイ駅や田町駅周辺にも紹介したい魅力的なご飯がたくさんあるのですが、長くなってしまいそうなのでまた次回、他のブログで紹介させてください。

以上で今回のお話をおわります。
ありがとうございました。