我使用 PHPUnit 数据库来测试一些使用 MDB2 的类。
一切都很好,因为我遇到了第二个测试,它返回一个错误:
捕获的异常:MDB2_Error 类的对象无法转换为字符串
当我用第二个测试代替第一个时,新的第一个测试是可以的,但第二个返回相同的错误!还有接下来的!
也许在第一次测试后 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 返回一个单例。构造函数内部没有引发异常......
这是前两个测试:
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);
}