Ben Zend için oldukça yeni ve benim ünite testleri oluşturarak bazı zorluklar yaşıyorum. Ben hala ben yapıyorum o aptal şey olduğu umuduyla sorunu çoğaltır bir minimum test sınıfa aşağı elimden ettik:
class UserRegistrationsTest extends PHPUnit_Framework_TestCase
{
$ db korumalı;
public function __construct($name = NULL) { parent::__construct ( $name );
$this->db = Zend_Db::factory('Pdo_Mysql', array( 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'xxxxxxxx', 'dbname' => 'testingdb' ));
Zend_Db_Table_Abstract::setDefaultAdapter($this->db); }
public function testName() { $users = new Users(); $select = $users->select()->where('regCode = ?', 'deadbeef'); $row = $users->fetchRow($select); }
}
Yani bu basitleştirilmiş testidir. Ben içindeki verileri var (doğru bağlayan olduğu) kurmak bir db var. RegCode 'deadbeef' olarak ayarlı ve aynı zamanda e-posta, regDate ve ortaklık için alanları olan bir kayıt vardır:
CREATE TABLE testingdb.users (
regCode varchar(16) NOT NULL,
email varchar(150) NOT NULL,
regDate datetime NOT NULL,
affiliate int(10) unsigned DEFAULT NULL,
PRIMARY KEY (regCode))
Ben o alır gibi basit Users.php adında bir sınıf vardır:
class Users extends Zend_Db_Table_Abstract {
protected $_name = 'users';
}
Benim sorunum veritabanı ince içine ekleyebilirsiniz olduğunu, ancak herhangi bir sorgu tek bir sonuç. FetchRow Yukarıdaki doğru SQL üretir ama dönen satır çöp - o zaman bağlı olduğu RegCode, e-posta, hiç regDate sütun içeren bir satır döndürür ama collumn 'Kullanıcılar' yerine 'iştirak' denir.
Ben diğer tablolar ve hiçbiri çalışmaları üzerinde denedim - hatta bir sütun başlığının yanı sıra bir sütun olarak tablo adı olarak veritabanı adını döndürür.
Unutulmaması gereken bir şey ben bir test bu kaçmıyorum eğer çalışıyor olmasıdır. Uygun app aynı kod ve db büyük, ama bir phpunit Testi olarak çalışan çalışmak ve tüm kaçık :-( alır
Takdir herhangi bir tavsiye
Cheers, Bryn