For sure testing is an important part of ensuring service consistency in a microservice architecture. It’s a tricky subject since the lines between what each testing type is called are quite blurry.
In my mind you should not be testing that which you don’t own. So an integration test is simply testing distinct modules of functionality within your own code, and ensuring they perform as expected. For external dependencies (e.g. another team’s service) you should mock that piece of functionality, essentially bringing it under your own ownership for the purpose of the tests.
However that raises the question — how can you be sure your mock is an accurate representation of that external service? This is where contract testing comes in. I think your piece is touching on that in a sense, as I said the lines are quite blurry with respect to naming conventions here.