A common way to work with both timers and other actors is to make them injectable or overridable so that in the test you can use a close-to-zero timeout or a test probe for receiving messages rather than the actual other actor in the tests.
There’s a few different aspects of testing actors covered in the Testing section of the docs. (I’d recommend you steer clear of the TestActorRef/synchronous testing though it makes for brittle tests)
I’ve generally assumed the timers were reliable (as they’re part of the toolkit) and not tested them. So to test messages triggered by inactivity and timers, I just send the message to the actor, just as I would any other behavior.