Testing user-observable behavior, such as a success message after submission, is generally more maintainable than testing implementation details.