Я пытаюсь использовать PHPUnit для модульного тестирования некоторых методов класса, которые возвращают SQL. Эти классы должны работать с любым адаптером Zend_Db, поэтому я бы хотел, чтобы тесты делали то же самое. Мои тесты выглядят примерно так:
public function testEtcGeneratesCorrectSQL()
{
$model = new ClassBeingTested();
// do some stuff
$sql = $model->__toString();
$this->assertEquals('SELECT foo.* FROM foo WHERE bar = 1', $sql);
}
проблема заключается в разнице между адаптерами. Если я проведу этот тест с использованием Pdo_Mysql, я получу ошибку, подобную этой:
--- Expected
+++ Actual
@@ @@
-SELECT foo.* FROM foo WHERE bar = 1
+SELECT `foo`.* FROM `foo` WHERE `bar` = 1
если я использую адаптер Sqlite:
--- Expected
+++ Actual
@@ @@
-SELECT foo.* FROM foo WHERE bar = 1
+SELECT "foo".* FROM "foo" WHERE "bar" = 1
так что тут делать правильно? Есть ли способ отключить экранирование в Zend_Db, который я могу включить только для этих тестов? Должен ли я жестко кодировать тип адаптера, а затем настроить ожидаемый результат в соответствии? Или зачеркнуть разные символы кавычек перед выполнением утверждения?