ユニットテスト(1.x系)

ユニットテストは外部のライブラリとしてsimpletestを使用することで行えるよう、 準備されています。また、CakePHP自体のテストもこのライブラリを使用しています。
1.2.x系も1.3.x系もsimpletestはversion 1.0.1を使用してください。(1.1系だとうまく動きません)
1.2.x系はModelやControllerをbakeする時にテストのひな形を作成できますが、単独でbakeすることはできません。
1.3.x系はModelやControllerをbakeする時に作成できますし、テストのひな形とfixtureを単独でbakeすることもできます。 以下は1.3.x系で単独でbakeする場合の注意点が主な内容です。(動作はv1.3.7で確認)

Model

まず、Modelのテスト用のfixtureを作成します。これは他のテストでも使用します。 bake時、Modelに独自メソッドがある場合はテストfunction(先頭がtestのキャメル記法のメソッド)が作成されます (プライベートメソッド(function名が_(アンダーバー)で始まるメソッド)はテストfunctionが作成されません)。
テストクラスに$fixturesメンバーを定義します。この時、使用プロジエクト.モデル名をアンダーバー記法で記述します。
例:'app.user_comment' プロジェクトのUserCommentモデル
'core.post' cakeコアのPostモデル

Controller

使用するModelのfixtureを用意した上でControllerのテストのひな形を作成します。 Controllerの$usesに定義してあるModelのfixtureがテストクラスのメンバ変数($fixtures)に定義されます。 この時、コントローラの$usesにプラグインのModel('Foo.Boo'のような記述)を含めていると、 bakeが落ちます(該当ファイルが空で作成されます)。
bake時、Controllerにactionがある場合はテストfunctionが作成されます(プライベートメソッドはテストfunctionが作成されません)。

Component、Behavior、Helper

Component、Behavior、Helperはbake時に独自メソッドがある場合でもテストfunctionが作成されません。

datasources、shells

未検証(bakeでプロジエクトを作成するとdatasourcesとshellsもフォルダが作られます)

Plugins

pluginsフォルダ内のプラグインのフォルダ内にtestsを作成できます。
appと同じ階層にあるプラグインはappのテストページに「Plugins」にプラグインごとに表示され、テストできます。 (テストページは以下のような感じになります)