Hatena::ブログ(Diary)

FUMINIMAX! このページをアンテナに追加 RSSフィード

2008-02-27 EthnaでSimpleTest(1)

EthnaでSimpleTest(1)

まずはSimpleTestを使うための準備

etc/(app-id)-ini.phpのdebugフラグをtrueにする

'debug' => true,

テストスクリプトスケルトンを作成してみて

どんなんができるんか確認。

まずは、アクションとフォーム用のスケルトン作成!

# ethna add-action-test index

file generated [/・・・/skel/skel.action_test.php -> /・・・/app/action/IndexTest.php]

action test(s) successfully created [/・・・/app/action/IndexTest.php]

ちょっと色々調べても「SimpleTestドキュメントを読んで」とかしか書いてないねんけど。。。

でも、まぁ、やってみて気がついたこととかをメモとして。。。

スケルトンを作ると、classが2個できるみたいで

(app_id)_Form_Index_TestCaseがアクションフォーム用のテストクラス

(app_id)_Action_Index_TestCaseのアクション用のテストクラスらしい。

今回のテスト対象のindex.phpアクションしか使ってないので

まずは(app_id)_Action_Index_TestCaseから使ってみますか!

ざっとスケルトンで作られたソースを見てみる

/**

* @access private

* @var string アクション

*/

var $action_name = 'index';

/**

* テスト初期化

*

* @access public

*/

function setUp()

{

$this->createActionForm(); // アクションフォームの作成

$this->createActionClass(); // アクションクラスの作成

$this->session->start(); // セッションの開始

}

/**

* テストの後始末

*

* @access public

*/

function tearDown()

{

$this->session->destroy(); // セッションの破棄

}

/**

* indexアクションクラスのサンプルテストケース

*

* @access public

*/

/*

function test_actionSample()

{

// フォームの設定

$this->af->set('id', 1);

// indexアクション実行前の認証処理

$forward_name = $this->ac->authenticate();

$this->assertNull($forward_name);

// indexアクションの前処理

$forward_name = $this->ac->prepare();

$this->assertNull($forward_name);

// indexアクションの実装

$forward_name = $this->ac->perform();

$this->assertEqual($forward_name, 'index');

}

*/


この中身自体はSimpleTestの実装に乗っ取っているみたいで

setup()がテスト前処理、tearDown()がテスト後処理の関数となってるみたい。

で、test_actionSample()としてコメントアウトされてるところが

実際のテストコードを書く部分になるみたいや。

んじゃあ、簡単にテストコードを書いてみる。

まずは、テストサンプルで絶対Trueになるコードを。

function test_actionIndex(){

$this->assertTrue(true);

}

んで、unittest.phpアクセスしてみたら、

trueで帰って来てんで!って感じで1passになってるんで、出だしは好調やな。。。


以下、OKの画面を参考までに。

f:id:fuminimax:20080228000824p:image

んで、action自体は前処理部分の

$this->createActionForm(); // アクションフォームの作成

で作成されているみたいなので、

とりあえず、actionが作成されているかどうかはスケルトンで実装されている

// indexアクションの実装

$forward_name = $this->ac->perform();

$this->assertEqual($forward_name, 'index');

で確認できるみたいや。

これも実装したら、unittest.phpでpassできていることが確認できたから

あとは個別の確認をどないしていくか、また見て考えんといかん。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/fuminimax/20080227/1204469976