継続的インテグレーションするならテストは必須ですよね。 ただテストしにくい仕様もたまにあります。 ランダム性があるテストは、書きにくいものです。 今回は、ランダム性あるルーレットクラスを作ってランダム性をカバレッジしたテストをPHPで書きます。 ##### 環境構成 * PHP 5.4 * PHPUnit 4.2 * Phake (モッキングフレームワーク) <br> ##### ルーレットの仕様 #### ルーレット(Rouletteクラス)の仕様 * ルーレットは、1~5等賞を与えること * 等賞は、ランダムな確率にすること #### 確率の定義 * 1等 0.1% * 2等 3% * 3等 10% * 4等 30% * 5等 56.9% 以下、サンプルソースになります。 <pre class="brush: php"> /** * ルーレットクラス */ class Roulette
なぜPHPUnitを使わないか PHPでテストといえば、おなじみPHPUnit。モック・スタブも実装されており、PHPUnitさえ使っていれば困ることもなく…。 いえ、私は困りました。PHPUnitのモック、すこし記述が冗長になるのが欠点。CakePHPといったフレームワークを横断的にテストする際、テストコードが整然と並ばず複雑な入れ子になったとき、これはまずいと直感し他の技術を探し求めたのです。 そこで知ったのがPhakeフレームワーク。Javaのモック・フレームワーク"Mockito"が由来だそうです。 https://github.com/mlively/Phake すでにPhakeに関する記事はいくつか書いていますが、今一度まとめておきます。 CakePHPにPhakeを導入するノウハウ CakePHPはテストクラスがPHPUnitに依存しているため、他のフレームワークの介入には工
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く