For a general programming book I recommend Unit Testing by Vladimir Khorikov https://www.manning.com/books/unit-testing which was recommended by Saša Jurić
by Vladimir Khorikov
Worth noting is that book also says in 9.2.1: "Mocks are for integration tests only". I agree.
In my opinion this book is the best comprehensive take on testing I ever encountered.