CakePHP2.x系で公式マニュアルに従って、フレームワークで用意されたテストツールを使用してみました。その手順などを記録しておきます。
確認環境 CakePHP2.10.2
公式マニュアル
https://book.cakephp.org/2.0/ja/development/testing.html
公式マニュアルに従ってやれば間違いないです。
見出し
テストDBの設定
テストツールがさわるDBの設定です。特殊な書き方など不要であらかじめフレームワーク側で用意してくれていますので使わなきゃ損です。ローカルならローカルDBそのまま設定すれば良いと思います。
app/Config/database.php
1 2 3 4 5 6 7 8 |
public $test = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'dbhost', 'login' => 'dblogin', 'password' => 'dbpassword', 'database' => 'test_database' ); |
テストケースの作成
app/Test/Case/View/Helper/ProgressHelperTest.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php App::uses('Controller', 'Controller'); App::uses('View', 'View'); App::uses('ProgressHelper', 'View/Helper'); class ProgressHelperTest extends CakeTestCase { public function setUp() { parent::setUp(); $Controller = new Controller(); $View = new View($Controller); $this->Progress = new ProgressHelper($View); } public function testBar() { $result = $this->Progress->bar(90); $this->assertContains('width: 90%', $result); $this->assertContains('progress-bar', $result); $result = $this->Progress->bar(33.3333333); $this->assertContains('width: 33%', $result); } } |
テスト対象の作成
app/View/Helper/ProgressHelper.php
1 2 3 4 5 6 7 8 9 10 |
<?php class ProgressHelper extends AppHelper { public function bar($value) { $width = round($value / 100, 2) * 100; return sprintf( ' } } |