Time to Read
5分
皆さん、楽しくテスト書いてますか~~~
今日は、 rack-legacy を使うことで、 PHP のアプリケーションなのになぜか Ruby のコードでテストできて(受け入れテストのあたりですけど)、そうすると本物の RSpec とかが使えて楽ですよ、と言う話をします。
rack-legacy とは。
まず、 Rack とは、 Ruby 製のウェブアプリケーション(Ruby on Rails、Sinatraなどをご存知かもしれません)とサーバ(Apache/Passenger、NginX、Lighttpdなどなど…)をつなぐ一種の規格です。 Perl や Python にも似たような仕組みがあります。
ここで、 Rack::Legacy というミドルウェアを使うと、他の言語の CGI や、 PHP のアプリケーションが Rack の上で動かせます。
そして、 Rack の上で動くということは、つまり Ruby の他のテストツール一式が使えるようになる、ということです。 Ruby を書く人は概ねテストの自動化のことばかり考えているので、おかげで Ruby のテストツールは大変豊富でパワフルです。その恩恵を PHP のアプリで受けられるかもしれません。むろん、 PHP も Ruby もこんな用途で使われるとは誰も思っていないですし、以下のコードは無保証です。
なお、なぜ「Legacy」という言葉がライブラリの名前に入っているかというと、これはいわゆる Rubyist ジョークというやつで、ツンデレに近い何かです。決して、 PHP がレガシーである、ということでは無いと思います。ただ、僕はこのライブラリの作者では無いので詳しい意図は不明です。
PHP と Ruby の準備をする。




