It seems to be recommended to use
block.timestamp for time-based operations (see Block Timestamp Manipulation: Preventative Techniques)
OpenZeppelin provides some APIs to simulate passing time. However,
time.advaneBlockTo(target) is extremely slow, so unit testing a contract that uses
block.number to simulate any large amount of time (say, 1 month) with this API will be prohibitively slow for the purpose of unit tests.
Are there any faster alternatives to simulate increasing
block.number as a means of simulating the passage of time?