AspectMock
AspectMock copied to clipboard
Cache not cleared when includePaths updated
Bug
When you add a file to be mocked to the includePaths config the cache isn't updated and you can't mock that class until you manually delete the cache.
Reproduction
- set up your includePaths to not include file
A.php - run a test using AspectMock that utilizes
A.phpso it's pulled into the cache - now add
A.phpto yourincludePathsconfig - modify your test so you mock something inside
A.php - re-run your test.
A.phpwon't be mocked because the cache doesn't get refreshed
Resolution
A copy of includePaths should be included in the cache. When checking if a file should be read from cache or re-processed, we should also check if that file has been added to includePaths since the cache was last written