Unit tests are intended to verify very small units, for example a function, or a method. We want from our unit tests to reach a very detailed level of granularity, testing as much code as possible. To test a class we would not want to use a unit tests, but rather a test suite, which is a collection of unit tests. Each one of them will be testing something more specific, like a method of that class.
This is not the only form of unit tests, and it cannot catch every possible error. There are also acceptance and integration tests, both out of the scope of this book.
In an integration test, we will want to test multiple components at once. In this case we want to validate if collectively, they work ...