PHP-VCRを使ったテストファーストなリファクタリング

こんにちは、エンジニアの @hanhan1978です。

2019/2/27(水)GMO Yoursにて開催された第135回 PHP勉強会@東京 - PHP勉強会@東京 | Doorkeeperにおきまして、「Encourage TDD with PHP-VCR」というタイトルで発表してきました。

f:id:hanhan1978:20190301170929j:plain
PHP勉強会 第135回

PHP-VCR

PHP-VCRは、例えばRestAPIをコールするHTTPリクエスト&レスポンスをyaml形式で保存してくれるライブラリです。一度保存してしまえば、次回以降はyamlの内容を戻してくれます。 HTTPリクエストを実行しなくなるので、CIにおけるテスト用途で、弊社でも最近利用しています。

そもそも、DIやインタフェースの設計が正常に行えていれば、HTTPリクエストを実行する処理自体をモックなどで置き換えてしまえばテスト可能なのですが、レガシーアプリだとそうもいかないので、PHP-VCRの出番というわけです。

登壇スライド

speakerdeck.com

まとめ

とても使いやすくて便利なライブラリーですので、既存のレガシーアプリの設計を上手にリファクタリングしていきたい方は、ぜひ利用されたらと思います!