テストケースは、開発したプログラミングに対して、意図しない動作をしないかを確認する作業です。
テストケースの書き方は
例えば
/Model/Articles.phpの
* article名のみ取得する
public function getArticleName($article_id = null) {
$result = $this->find(‘first’, array(
‘conditions’ => array(
$this->alias.’.id’ => $article_id,
$this->alias.’.deleted’ => false,
),
‘fields’ => $this->alias.’.title’,
‘contain’ => array(),
));
return $result;
}
処理のテストケースを作成します。
===========================
補足
実行方法(teraterm)
・・・app]
全てのページを検証する場合
./Console/cake testsuite app AllTests
一つのページを検証する場合
./Console/cake testsuite app Model/Article
あるページの関数を検証する場合(debug(変数)等の中身おを調べたいとき)
./Console/cake testsuite app Model/Article –filter getArticleName(関数名)
==================================
検証する論理値(仮定しなければいけないこと)
実行する処理(今回は記事のタイトルを取得する)に対して、仮定することはいくつかあります。
①id(個人データ)があったら、そのタイトル名(Articleのtitle)を取得できるか
②削除済みのタイトルは取れない
③存在しないタイトルは取れない場合(削除されていない場合)
【実際のテストケース】
Model/Article.php
/**
* testGetTheAge method
*
* @return void
*/
public function testArticleName(){
// 存在しないタイトルは取れない
$result = $this->Article->getArticleName(99999999);
$compare = array(); //debug($result)
$this->assertEquals($compare, $result);
// 削除済みのタイトルは取れない
$result = $this->Article->getArticleName(6);
$compare = array();
$this->assertEquals($compare, $result);
// タイトルが取れる
$result = $this->Article->getArticleName(3);
$compare = array(
‘Article’ => array(
‘title’ => ‘うぁーがんばろー’,
)
);
$this->assertEquals($compare, $result);
}
======================
【補足②】
始めに
@return void(->何も返さないよ) とか
@return array(->配列の返すよ)
など、返り値を設定しておきます。
*deletedの考え方
deleted = 削除済みのものを取ってくる
type P = false =>0、true=>1
*debug()関数に関して
debug()関数は取得したいデータを取ってきたい場合
実行したときにそのデータ処理が取得できます。
======================
Fixture(テストケースのデータ格納場所)の追加に関して
Fixtureに情報(データ)を格納したら、AllTestsをするとき、
そのときにでたエラーを修正していきます。
========================
このように、実行したい処理が何をしている処理なのか
(データを取得したいのか、削除したデータを取ってきたいのか、IF文で別々に処理しているのか、空の場合の処理なのか)
など、考えた上で、
テストケースは10パターンほど考えます。多ければ多いほどよいです。
このようにもし何かの不具合が見つかったら、何処が悪かったのかを検証できるので
基本的なことですがしっかりと見につけていけたらいいですね。