Birim SQL döndüren bir sınıf test

0 Cevap php

Ben SQL döndüren bazı sınıf yöntemleri test ünitesine phpunit kullanmaya çalışıyorum. Bu sınıflar herhangi Zend_Db adaptör ile çalışması gerekir, bu yüzden aynı şeyi testleri istiyorum. Benim testler biraz şuna benzer:

public function testEtcGeneratesCorrectSQL()
{
    $model = new ClassBeingTested();

    // do some stuff

    $sql = $model->__toString();

    $this->assertEquals('SELECT foo.* FROM foo WHERE bar = 1', $sql);
}

Sorun adaptörleri arasındaki kaçan farklılıklarıdır. Ben PDO_MYSQL kullanarak bu testi çalıştırırsanız, ben böyle bir hata alırsınız:

--- Expected
+++ Actual
@@ @@
-SELECT foo.* FROM foo WHERE bar = 1
+SELECT `foo`.* FROM `foo` WHERE `bar` = 1

Ben Sqlite adaptör kullanırsanız:

--- Expected
+++ Actual
@@ @@
-SELECT foo.* FROM foo WHERE bar = 1
+SELECT "foo".* FROM "foo" WHERE "bar" = 1

bu nedenle burada yapılacak doğru şey nedir? Ben sadece bu testlerin amacıyla açabilirsiniz Zend_Db'nin içinde kaçışa devre dışı bırakmak için bir yolu var mı? Ben adaptör türü kodlamalısınız ve ardından maç benim beklenen çıkışı ayarlamak mı? Veya onaylama yapmadan önce farklı tırnak karakterleri dışında şerit?

0 Cevap