一人でゲームをリリースするための自動化 PHPUnit編 ~目指せCoverage 100%~2. ✤ 名前 中村悟
✤ 所属 すずな株式会社 代表取締役
✤ Twitter @cloned ((読み方:: クローンディー))
✤ Blog http://d.hatena.ne.jp/cloned/
✤ 略歴
自己紹介
営業マン
派遣エンジニア
3. ✤ インサイド クリプト よかったら遊んでね♪
✤ https://play.google.com/store/apps/details?
id=com.suzna.labyrinth.android
44//2255 ゲームをリリースしました
18. time()やmt_rand()などを使うコードもテスト
class CampaignTest extends PHPUnit_Framework_TestCase
{
public function testIsEnabled()
{
$c = $this->getMock('Campaign', array('getNow'));
$c->expects($this->at(0))
->method('getNow')
->will($this->returnValue(strtotime('2013-05-31')));
$c->expects($this->at(1))
->method('getNow')
->will($this->returnValue(strtotime('2013-06-01')));
$this->assertTrue($c->isEnabled(), 'キャンペーン中');
$this->assertFalse($c->isEnabled(), 'キャンペーン終了');
}
}
✤ メソッドが分かれていればテスト可能
20. 複雑なオブジェクトを使うコードもテスト
class Kansai extends ContainerAware
{
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public function getKansai($id)
{
return $this->container->get('doctrine')
->getManager()
->getRepository('PhpConBundle:Kansai')
->find($id);
}
}
✤ こんな“関西さん”をDDBBから取得する
Symfonyのコードがあったとして