ci-phpunit-testの正式リリース(v1.0.0、v2.0.0、v3.0.0)

初の正式リリース

2021/03/03にCodeIgniter 3でPHPUnitでのテストを簡単に書くためのツール「ci-phpunit-test」のv1.0.0、v2.0.0、v3.0.0をリリースしました。

調べてみると、最初のリリースv0.1.0は2015/06/12でした。 ということで、「構想3か月、開発5年」みたいな長大なプロジェクトに結果的になりました。

ここまでで合計38回のリリース、18人のコントリビューター、Composerからの累計ダウンロード数37万回以上になりました。

ただし、GitHubスターがまだ536と少ないです。特に日本人は少ないので、ユーザーのかたは遠慮なくスターをガンガン押してください!

PHPUnitのバージョンとの対応

何故、3つもバージョンをリリースしたかというと、PHPUnit(とPHP)のバージョンアップに対応するためです。今のところそれ以外に機能的な差異はありません。

PHPUnitでテストを書いていますが、ブランチを分けないとテストが簡単に書けなくなりました。

ci-phpunit-test PHP PHPUnit
v3.0.0 PHP 7.3以降 PHPUnit 9.3以降
v2.0.0 PHP 7.2以降 PHPUnit 8.1から9.2
v1.0.0 PHP 5.4.0以降 (5.6以降を推奨) PHPUnit 4.3から7.5 (4.8以降を推奨)

今後

今後は、v3.xをメインのバージョンとして、必要があれば古いバージョンもメンテしていこうと思います。

CodeIgniter4への対応

なお、ci-phpunit-test for CodeIgniter4の作成予定はありません。これは、多くの機能がCodeIgniter4に含まれたため、必要性があまりないためです。

ただし、全ての機能がCodeIgniter4に含まれるわけではないので、以下のパッケージで不足する機能(モック作成のヘルパーメソッド、モンキーパッチ、$this->request)を提供していきます。

以下のテストコードのように既存のテストコードをあまり変更せずにCodeIgniter4でも使えるようになります。

モンキーパッチについて

最後に、今までモンキーパッチについて、きちんと説明を書いたことがないので、ここに記載しておきます。

モンキーパッチは自転車の補助輪のようなものです。プロダクトコードに問題がなければ、本来必要ありません。個人的にも私は自分が書いたコードでモンキーパッチを使ったことはありません。

モンキーパッチを使わないとテストが書けない場合は、設計に問題があると思ってほぼ間違いありません。設計を見直してください。

そうは言っても、サードパーティのツールがexit()していたり、過去のレガシーコードをまだ使わざるを得なくモックに差し替えられないというような場合のために、一応、機能を提供しています。

できるだけ早く、モンキーパッチを使わなくて済む環境を目指してください。

関連

Date: 2021/03/08

Tags: codeigniter, phpunit, testing, release