Парни, привет.
По тестам вопрос появился. Есть конструктор класса, там подобное:
$this->regionsData = Cache::remember($this->getCacheKey($tm), Carbon::now()->addHour(), function () use ($tm) {
$xml = new SimpleXMLElement((new CentersRepository())->getByTM($tm));
return $this->parseXml($xml);
});
($this->parseXml результаты файла в массив помещает, как нужно сортирует и возвращает массив данных).
В конструкторе по факту вот что происходит: если в кэше данных нет, то они туда записываются и в следующем запросе берутся уже оттуда.
Пытаюсь тест написать, точнее понять как такое лучше тестировать?
Из вариантов нашел подобные примеры:
Cache::shouldReceive('remember')
->once()
->with($key, $duration, Closure::class)
->andReturn($object);
Но не понимаю откуда данные для andReturn брать? я правильно понял, что это тестируется поведение, тогда есть смысл в анонимной функции все что в конструкторе пытаться воспроизвести?