I would suggest looking at the tests in the core repository for existing integrations for ideas. The config flow tests are all fairly similar. So maybe start there?
The hardest part, at least for me, is designing a method to mock out the behavior of the external service. This part is usually unique unfortunately.