Although the points you mention in this section are all good suggestions that should be follow, you (or anyone else) use the "best" term when you are trying to highlight "recommended" or "good" practices. So, there's a wording issue 🙂
By definition, a “best practice” implies an unrivalled approach that’s been tested and proven to be superior in all contexts and situations. The term “best” suggests something that cannot be bettered. It carries the weight of finality and universality.
As I said, all your points make total sense, yet you are exposing Unit tests but not Acceptance tests. Thus, it's not taking into consideration the Test Pyramid where we can see several levels:
1. Unit (the ones you mention, as much as needed, as fast as possible)
2. Integration (somehow slow, only a few of them)
3. Acceptance (very slow, keep it to the bare minimum)
One of my first articles was an analysis for PHP Testing, I talked about the Test Pyramid and also talked about 3 testing frameworks,
Also, I wrote a more recent article to highlight the (common) problem using "best" vs "recommended" terminology, especially in software development.
Feel free to browse my posts if you want to read why.
Cheers! 👋