ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

Threadクラスも実装終了。

Groupとかからのコピペであっという間に終了。
で、ずっと気になってたんだけどSimpleTestの弱みって setUp()/tearDown()が、test****メソッド「毎に」呼ばれてしまうのだ。
つまり、ある FooBar_TestCase クラス全体の、始まりと終わりで何か処理をさせたい、というようなフックポイントが提供されていない。
ということで、Threadのテストケースからはちょっと構造を書き換えてます。データファイルがあればチェックできる、find系についてはそのまま testFind***()系で記述しますが、テンポラリファイルなどを使用するCreate/Update/Delete系については、「testCUD()」みたいなメソッド中に集約し、テンポラリファイルの作成と削除などは一括して制御するようにしてみました。

<?php
function testCUD() {
// テンポラリファイルの作成
$this->_file = tempnam($this->_dir, "Thread_");

$this->_testCreate();
$this->_testUpdate();
$this->_testDelete();

// テンポラリファイルの削除
@unlink($this->_file);
}
function _testCreate() {
// ...
}
// ...
?>

こんな感じで動かせましたので、どこかのタイミングで他のDAOのTestCase.phpについても同様に直しておきたいです。