Ad ile PHPUnit getMock ()

3 Cevap php

PHP ad kullanmaya başlamadan benim arayışı devam ediyor. Bu kez PHPUnit bana sorun veriyor. Benim kurulum () yöntemi, bu gibi:

$test = new \MyNamespace\NonPersistentStorage(); // works
$mock = $this->getMock('\\MyNamespace\\NonPersistentStorage'); // doesn't work

GetMock () yöntemi yalnızca bir NonPersistentStorage sınıf arıyoruz PHP sonuçlanır. Değil ad alanı içinde.

S: Ben ad sınıf için getMock () yöntemi bir görünüm elde etmek için değiştirmek için ne yapmam gerekiyor?

Edit: çift ters eğik çizgi sorun değildir. Ayrıca bakınız: the manual: (alıntı)

'Tek tırnaklı bir dizge içinde, ters eğik çizgi kaçış dizisi kullanmak çok daha güvenlidir, ama yine de en iyi uygulama olarak tüm dizelerde ters eğik çizgi kaçış uygulama tavsiye edilir.'

edit: Ne benim için çalıştı Ignace R. cevap görüşleri olduğunu

3 Cevap

Sınıflara dize başvurular genellikle önde gelen ters eğik çizgi yok. Bunu kaldırmayı deneyin ve eğer çalışırsa bize.

EDIT: ve onu yapmazsa, class_alias o sınıf için genel ad olarak bir ad oluşturmak için deneyin. Ancak, bu çirkin bir çözüm olacaktır ...

(çift ters eğik çizgiler olmadan) yerine bu dizeyi kullanın:

$mock = $this->getMock('\MyNamespace\NonPersistentStorage');

Ben test dosyasında class \ MyNamespace \ NonPersistentStorage dahil sorununuzu çözebilir diye düşünüyorum.