神記逸天プログラマーブルリーデイズ

行き詰まったことをメモっておく中二プログラマーのブログ。スマホアプリとかゲームアプリ関係が多い

記すだけで全てが正される。そんなセカイをボクは生きていくんだ (訳:phpunit使いました)

「それは神の預言書のように。時流に迷える猫のように」

先日リジェクトを受けたアプリは、広告のデザインを変更して再申請した。
これで上手くいかなかったらほんと泣き寝入りするしかない。
いや、個人でやってるアプリならそれでいいけど、請けちゃってるから泣き寝入りするわけにもいかなくて!

説得するしかない。英語で!!!

▼テスト自動化
別の案件である程度コードを書き終わったと思ったら、「テスト自動化しちゃってー」と言われた。

ヤバい……。テスト自動化なんてしたことないよ。

というわけで早速google先生に聞いてみた。

phpだとphpunitというのを使うと良いらしい。そして今触っている環境はFuelPHPというやつだから、これを合わせたような記事が見つかればできたも同然だ!

fuelPHPphpunitを試すよ!
http://fuelphp.jp/docs/1.6/general/unit_testing.html
記事を探していたら、なんだか結構簡単にテストを書けそうなことを書いてあったので、「まあ1時間くらいでできるだろう」なんて思った。

甘かった。

1. phpunitって別にインストールする必要があるらしい!
fuelPHPってすごい!なんてことをいろんなところに書いてあったものだから、phpunitなるものも勝手に備わっているとか、そんなあまっちょろいことを考えてました。
現実はそんなに甘くない。

http://phpunit.de/getting-started.html

けれど、ここに書いてある通りにやればできるらしいので、このくらいならできる、と思って早速やってみると……


2. wgetがない

wgetなんてコマンドないよ! ってターミナル師匠に怒られました。
すみません、師匠。というわけで今度はwgetのインストールの仕方を。

http://www.absolute-keitarou.net/blog/?p=296

ヤバいよ!すごいよ!
ここに書いてある通りにやったら簡単にインストールできたよ!
唯一、

sudo ./configure –with-ssl=openssl

ってところが

sudo ./configure -–with-ssl=openssl

とやらないと、自分の環境では通らなかったよ!

これで無事wgetも手に入れて、phpunitも手に入れてめでたしめでたし……じゃなかった!

3. phpStome上で動かしたいのだが

phpunitはインストールしたものの、はて、これをどうやって動かせばいいのだろうか。
いろんなサイト上には「テストが走って成功すると緑のランプがつくよ!」「失敗すると赤いランプがつくよ!」なんて面白そうなことが書いてあって、早くみたい!
実行する度に緑やら赤に光るランプがみたいよおおお!

まずはphpunitを設定しないといけないらしい。
http://d.hatena.ne.jp/epy0n/20110511/1305097833
これで、phpstomeからphpunitが使えるようになったらしい。
けど肝心のテストはどうやるんだろう。画面が微妙に違って、自分の頭ではついていけないので、他の記事に頼る事に。

http://www.findxfine.com/programming/php/995557148.html

Testscope: Class
Class: CalcTest
File: CalcTest.phpのパス

と設定すれば動くとか。
とりあえず、サンプルのコードを全部コピーして貼付けてやってみたところ……!
動いた! 動いたよおおおおお!

緑のランプが神々しく光ってるよおおおお!
こんにちは、phpunit! こんにちはTDD!


しかし、次の問題。
DB接続が出来ない。。。。。。。。
というか指定したクラス以外のテストができない。。。。
単体テストだからそういうものなのかな? 複数のクラスが絡み合うようなテストはできないってことなのかな?

そうなると結局、今までみたいなかいはつ 方法になってしまう気が。。

また明日ももう少し調べてみよう。