I agree on point 1.
Can you elaborate on point 2?
You must isolate dependencies.
When test failed, where is the error? This is in the unit or in the dependency? When you use a mock, you will know where it is.
You may use more mocks for more test scenarios too.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.