2
我在我的系統中使用了Doctrine APCu Cache,儘管它在開發和生產中都能很好地工作,但是當我運行PHPUnit來測試應用程序時,代碼行被編碼爲緩存系統從未被標記爲測試。如何使用PHPUnit測試Doctrine Cache代碼
主義APC緩存服務的配置:
# Services
services:
doctrine.common.cache:
class: Doctrine\Common\Cache\ApcCache
代碼標記爲未經測試:
public function findActiveStatus($cache = true)
{
if (($cache) && ($statusList = $this->cache->fetch('sys_active_status'))) {
return unserialize($statusList); // non-tested
} else {
$statusList = $this->findAllStatus();
$this->cache->save(
'sys_active_status',
serialize($statusList)
);
return $statusList;
}
}
我已經做了多次請求和操作來測試這個功能,但PHPUnit的永遠標記爲測試這一行。
的代碼行是未經證實的是數字3:return unserialize($statusList);
有誰知道如何測試主義緩存PHPUnit的?
以及如何注入對象?我在服務中使用緩存(通過依賴注入設置緩存) – unairoldan
我已經找到了這個解決方案:http://stackoverflow.com/questions/15606191/functional-test-mock-service-does-not-persist-in-服務容器 – unairoldan
這看起來相當完整,你可以做類似的事情來將你的Cache對象注入到ApcCache中。因爲ApcCache是Core Doctrine的一部分,所以我不確定爲什麼你需要爲它編寫單元測試(Doctrine的人應該這樣做),除非你只是想學習,就是說。 –