マジックメソッドを巡る旅 その12
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
ヒューマンリソシア株式会社はコラム「マジックメソッドを巡る旅 その12」を公開しました。
__call()の実例を見てみましょう、の、続きです。
前回に引き続き実際に使った事があるのと、割としっくりくる実例で「モックオブジェクトの作成に使う」
というものがあります。なお「モックオブジェクト」という単語については適宜ググってください。
さて。
個人的に実装(正確には、インタフェース)の美しさで「ずば抜けている」と思っているものに、
Phake というものがございます。所謂「モックフレームワーク」って類いのものでございます。
この話の流れで「PDF作成モジュール」だったりするとびっくりですね。
他のものでも基本的に同じようなもんだと思われるのですが、
せっかくなら「好みの」サンプルのほうが気分が上がりますので、
Phakeで簡単に確認をしていきましょう。
簡単にサンプル(使い方 / 使われ方)を見てみましょう。
公式の所からのサンプルに、ちょっとだけ手を加えて読みやすくしたものです。
http://phake.readthedocs.org/en/latest/method-stubbing.html
interface Item
{
/**
* @return money
*/
public function getPrice();
}
//
$item1 = Phake::mock(‘Item’);
$item2 = Phake::mock(‘Item’);
$item3 = Phake::mock(‘Item’);
//
Phake::when($item1)->getPrice()->thenReturn(100);
Phake::when($item2)->getPrice()->thenReturn(200);
Phake::when($item3)->getPrice()->thenReturn(300);
//
$this->shoppingCart = new ShoppingCart();
$this->shoppingCart->addItem($item1);
$this->shoppingCart->addItem($item2);
$this->shoppingCart->addItem($item3);
この続きは以下をご覧ください
http://resocia.jp/column/2144/
ソーシャルもやってます!