PHPUnitデータベースを使用して、MDB2を使用していくつかのクラスをテストします。
エラーを返す2番目のテストに遭遇したので、すべてが順調です。
キャッチされた例外:クラスMDB2_Errorのオブジェクトを文字列に変換できませんでした
最初のテストの代わりに2番目のテストを配置すると、新しい最初のテストはOKですが、2番目のテストは同じエラーを返します。そして次のものも!
たぶん、MDB2接続は最初のテストの後に閉じられますか?
これが私のコンストラクターです:
public function __construct()
{
$this->pdo = new PDO('connectionstring', 'user', 'passwd');
try {
$this->mdb2 = new MyDBA($this->dsn);
}
catch (Exception $e) {
error_log(' __construct Caught exception: '.$e->getMessage());
}
}
MyDBAはシングルトンを返します。コンストラクター内で例外は発生しません...
最初の2つのテストは次のとおりです。
public function testTranslationAdd()
{
try {
$id = $this->mdb2->addTranslation("This is the second english translation.","en");
}
catch (Exception $e) {
error_log(' testTranslationAdd Caught exception: '.$e->getMessage());
}
$xml_dataset = $this->createFlatXMLDataSet(dirname(__FILE__).'/state/twotranslations.xml');
$this->assertDataSetsEqual($xml_dataset,
$this->getConnection()->createDataSet(array("translation")));
}
public function testTranslationGet()
{
try {
$text = $this->mdb2->getTranslation(1,"en");
}
catch (Exception $e) {
error_log(' testTranslationGet Caught exception: '.$e->getMessage());
}
$this->assertEquals("This is the first english translation.",$text);
}