Which type of test verifies that two microservices can communicate correctly according to a shared contract, without requiring both services to be running simultaneously?