Mock Laravel Cache remember for ever
Sometimes you want to make sure certain things are cached properly. With mocking this is possible. In this example I will show how to test Cache::rememberForever
and see the results.
$cacheRepository = Cache::driver();
$cacheRepositorySpy = Mockery::spy($cacheRepository);
Cache::swap($cacheRepositorySpy);
$this->get('/call-to-cached-endpoint')
$cacheRepositorySpy->shouldHaveReceived('rememberForever')
->with('users', \Closure::class);
// It's also possible to get back what was put in the cache
$store = $cacheRepositorySpy->getStore();
// ...and write assertsions against this
$this->assertEquals('[email protected]', $store->get('users')->first()->value);