When testing is painful
There may come a time when you may encounter some pain. Perhaps you've forced yourself into a corner with your design. Maybe you're unsure what the next, most interesting test would be. Sure, you didn't mean to, but conceivably you could have taken too great a leap between tests. Whatever the case may be, there may come a time when testing becomes painful.
A spike
If you find that you're stuck or you're debating between options on how to proceed, it might be beneficial to run a spike. A spike is a means with which you can investigate an idea. Give yourself a time limit or some other limiting metric. Once sufficient knowledge or insight has been gained by the exercise, throw away the results. The purpose of the spike is not to walk away with the working code. The goal should be to gain understanding and provide a better idea of a path forward.
Assert first
At times, you may know the next test you want to write without being quite sure how to start. If this happens, start...