Я использую Doctrine APCu Cache в своей системе и, хотя он отлично работает как в разработке, так и в производстве, когда я запускаю PHPUnit для тестирования приложения, строки кода, где закодирована система кеша никогда не отмечены как проверенные.Как проверить код кэша доктрина с PHPUnit
Доктрина APC служба Cache конфигурации:
# 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);
Кто-нибудь знает, как проверить Doctrine Cache с PHPUnit?
и как вводить объект? Я использую Cache внутри службы (кеш настроен через Injection Dependency) – unairoldan
Я нашел это решение: http://stackoverflow.com/questions/15606191/functional-test-mock-service-does-not-persist-in- service-container – unairoldan
Это выглядит довольно полным, и вы, вероятно, можете сделать что-то похожее, чтобы ввести свой объект Cache в ApcCache. Поскольку ApcCache, тем не менее, является частью Core Doctrine, я не уверен, почему вам нужно будет написать для него единичный тест (люди в Doctrine должны это сделать), если вы просто не учитесь, то есть. –