Ben veri veritabanına erişimi (biliyorsunuz, CRUD, aslında) yöneten bir sınıf test etmek için çalışıyorum. Bizim kullandığımız DB kütüphanesi ilk statik bir çağrı tarafından tablo nesnesi olsun, burada bir API sahip olur:
function getFoo($id) {
$MyTableRepresentation = DB_DataObject::factory("mytable");
$MyTableRepresentation->get($id);
... do some stuff
return $somedata
}
... Eğer fikir olsun.
Biz bu yöntemi test etmek için çalışıyorum, ancak (a) biz test için gerçek bir db bağlantısı gerekmez, ve (b) biz bile test için DB_DataObject lib eklemek gerekmez böylece DataObject şeyler alay ediyorlar .
Ancak, PHPUnit I $ this-> getMock () uygun statik bir çağrı kurmak için almak gibi olamaz. Ben var ...
$DB_DataObject = $this->getMock('DB_DataObject', array('factory'));
... Ama test hala bilinmeyen bir yöntem "fabrika" diyor. Dedi önce DB_DataObject bulamadı çünkü o nesne oluşturma biliyorum. Şimdi bunu yapabilirsiniz. Ama, hiçbir yöntem?
Ne gerçekten yapmak istiyorum iki sahte nesneler, tablo nesne için bir sıra döndürülen sahip olmaktır. Yani, ben bu fabrika statik çağrı belirtmeniz gerekir, ama aynı zamanda bazı ben zaten kurdum diğer davalarını nesne belirtilen döndürür yapmak değil sadece.
Ben bir süre önce SimpleTest did bu (kod bulamıyorum) ve iyi çalıştı bir ihtar olarak bahsetmeliyiz.
Ne verir?
[GÜNCELLEME]
Ben beklentiden ile ilgisi vardır () olduğunu kavramak başlıyorum