Я разрабатываю приложение Symfony4 и хочу проверить, действительно ли служба обновляет мою базу данных.
Здесь я указываю объект передачи данных
public function update(ChargeDto $chargeDto): ChargeDto
{
$charge = $this->chargeRepository->find($chargeDto->id);
// The mapper fills the new data into my entity
$charge = ChargeMapper::fromDto($charge, $chargeDto);
// here I check that the entity has in fact the new data
VarDumper::dump($charge->getAuthorPNumber());
$this->entityManager->persist($charge);
$this->entityManager->flush();
$this->entityManager->refresh($charge);
// here I check that the entity still has the new data
VarDumper::dump($charge->getAuthorPNumber());
return ChargeMapper::toDto($charge, $chargeDto);
}
В моем тестовом классе я получить обновленный набор данных из базы данных, чтобы проверить, действительно ли он был обновлен:
$res = $this->chargeRepo->find($updatedDto->id);
VarDumper::dump($res->getAuthorPNumber());
, и я получаю старые данные. Если я загляну в базу данных вручную, я вижу, что она действительно была обновлена и содержит новые значения.
Я не знаю, активно ли какое-либо кеширование. Как мой тест может получить реальную частоту sh новые и обновленные значения ?
PS: Я только что дважды проверил: для среды prod у меня есть конфигурация для doctrine кэширования (/ config /prod/doctrine.yaml), но не для среды разработки или тестирования.