A test name is the first clue to what's being verified. A bad name hides intent. A good name tells the story.
✅ registers_user_with_valid_email❌ calls_Save_on_UserRepogiven_invalid_password_when_registering_then_error_returnedReads like a mini-spec.
✅ rejects_login_with_expired_token❌ testLoginPick a pattern (camelCase, snake_case, sentence-style) and stick to it across the suite.
test1, test2, test_final→ Useless.testUser (what about the user?).rejects_login_with_expired_token beats testLogin every time.👉 A test name should explain the behavior under test so clearly that you don't need to read the code to understand it.