Ben birim test hakkında öğrenme ve ben şu sorunu çözmeye çalıştı: YaniZF2 birim test kimlik doğrulama
Simple ZF2 Unit Tests for a controller using ZfcUser
: verilen tek cevap kullanarak ...
Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for zfcUserAuthentication
benim setUp işlevim aynı görünüyor.
Zend\Mvc\Exception\InvalidPluginException: Plugin of type Mock_ZfcUserAuthentication_868bf824 is invalid; must implement Zend\Mvc\Controller\Plugin\PluginInterface
Kodun (aynı şekilde benim kodunda bölünmüş) bu kısmında neden olunabilir:
$this -> controller->getPluginManager()
->setService('zfcUserAuthentication', $authMock); // Error refers to this line.
$ authMock nesne görünüşte değil maalesef şu hata mesajını alıyorum setService'ye geçmek için uygulamak zorunda olduğum plugininterface'yi uygulamak.
$ authMock, birim sınamasında kullanıldığından oraya iletilmek istenmiyor mu? Farklı (birim test odaklı) setService yöntemi kullanmalı mıyım?
Uygulamamda oturum açmayı idare etmenin bir yoluna ihtiyacım var veya birim testim anlamsız.
Her türlü öneriniz için teşekkürler.
// Getting mock of authentication object, which is used as a plugin.
$authMock = $this->getMock('ZfcUser\Controller\Plugin\ZfcUserAuthentication');
// Some expectations of the authentication service.
$authMock -> expects($this->any())
-> method('hasIdentity')
-> will($this->returnValue(true));
$authMock -> expects($this->any())
-> method('getIdentity')
-> will($this->returnValue($ZfcUserMock));
// At this point, PluginManager disallows mock being assigned as plugin because
// it will not implement plugin interface, as mentioned.
$this -> controller->getPluginManager()
->setService('zfcUserAuthentication', $authMock);
ise:
=== Düzenleme (2013/11/02) ===
Ben bu sorun alanı olduğunu düşünüyorum olarak, açıklama için bu bölümü odaklanmak istedik sahte gerekli uygulamaları işlemez, başka nasıl giriş yapmalıyım?
Modeller gibi ünite test denetleyicileri için gerekli olmadığı doğru muyum? Tüm kimlik doğrulama kodumu sakladığım yer burası. – Shoreline
Son zamanlarda hiç sorun yaşamadan benzer bir şey yaptım. Komple test sınıfınız neye benziyor? Ayrıca test bootstrap'iniz neye benziyor? Sonunda test etmeye çalıştığın eylem. – Ruben
Birim testi yaparken özel bir uygulama yapılandırması kullanıyor musunuz? Bu durumda zfcUser modülünün test ortamında yüklenmemiş olması mümkündür. – SmasherHell