私は Doctrine オブジェクトを PHPUnit でテストしようと試み始めており、毎回モデル オブジェクトから DB を再ロードしたいと考えています。
私の最初の試みは次のようになります。
class Tests_User extends PHPUnit_Framework_TestCase
{
public function setUp()
{
Doctrine_Manager::connection('mysql://user:pass@localhost/testdb');
Doctrine::createDatabases();
Doctrine::createTablesFromModels('../../application/models');
}
public function testSavingWorks()
{
$user = new User();
$user->save();
}
public function testSavingWorksAgain()
{
$user = new User();
$user->save();
}
public function tearDown()
{
Doctrine::dropDatabases();
}
}
問題は、2 番目のテストで setUp() が再度呼び出されると、createTablesFromModels() が失敗し、テーブルが存在しないためにエラーが発生することです。
他の誰かが PHPUnit やその他の単体テストの目的で Doctrine 接続を再初期化した例を教えていただければ幸いです。