來自Java背景,我正在研究php代碼庫並希望爲我的代碼添加單元測試。自動注入依賴關係進行單元測試
我有如下有一個DAO類服務類:
class ServiceClass {
private $daoClass;
public function methodToTest(){}
}
我不提供一個構造函數我也不添加對daoClass
屬性的設置方法。這是因爲它會使用PHP-DI IoC容器注入。對於單元測試,我使用的是phpunit
,所以我嘲笑daoClass
對象,並使用反射直接注入該屬性(因爲沒有該屬性的構造函數或設置器)。
在java中,我們可以很容易地使用@InjectMocks
註釋或MockitoAnnotations.initMocks
方法來做到這一點。
我無法在phpunit
中找到類似的方法。
另外,一個不同但相關的問題,有沒有什麼辦法可以在我的測試中創建一個私有屬性並用一些標籤對它進行註釋,並自動轉換爲一個模擬對象實例?就像Java中的mockito如何執行註釋一樣@Mock
。
你檢查過了嗎? https://github.com/eltrino/PHPUnit_MockAnnotations –
,因爲我猜PHP-DI的[注入現有實例功能](http://php-di.org/doc/inject-on-instance.html)被使用。你會考慮用它來裝配被測試的物體嗎?基本上你是用手做同樣的事情。 – xmike