Some principles I follow center around black-box testing, testing behavior and writing small focused tests with strict assertions. These principles typically result in tests that might be slightly more verbose to write, but are easy to read, serve as a documentation for the code under test and are easy to maintain.

don't worry about the internals of the code, just treat the interface as a real consumer and make assertions that are aligned with the expectations that a real consumer has