こんにちは、オルトプラス技術部のKodaNoteです。 とあるプロジェクトでテストコードの作成作業で初めてPHPUnitとPHP Infectionに触れました。 今回はその紹介とテスト失敗時に実際に行った修正方法も併せて書こうと思います。

テストコードとは

自分が書いたソースコードが正しく動いているかを確認するためのコードになります。

テストコードなしで動作確認する場合、自分で正常系が起こるパターンのデータと異常系が起こるパターンのデータの準備、ボタンのクリックでAPIを発火させるなどの手動で検証をするという手間が発生してしまいます。

そういった手動の検証の手間を省き自動的に検証できる仕組みになります。

PHPUnit

PHP向けの単体テスト用のフレームワークです。PHPで書いたメソッドが期待通りに動作するかを検証するものになります。

Mutation Testing(**ミューテーションテスト)**とは

テストコードの質を評価するための方法になります。ソースコードに人為的に> を < に変えたり、x = 0 を x = 1のような小さな変更を加え、それらの変更が既存のテストによって検出され、テストが失敗するかを確認することができます。

PHP Infection

PHP向けのMutation Testingのツールになります。

試してみる

テストについて簡単な説明をしましたが、実際にサンプルを作って簡単なテストを実施してみようと思います。

事前準備

Composerとphpのインストールは割愛します

※Composerとphpについて、筆者は以下のバージョンをインストールしました。 ・Composer:2.7.7 ・php:8.1.29

ソースコードの作成

筆者はMutationTesting/src配下に作成しました