with the first question, I had the same thing. there are multiple things you can do:
a: create and delete as you said
b: what kind of information those microservices create? you create them yourself rather than sending them to microservices. then the refreshdatabase would work (Only do this if you are sure that the other tests cover the microservice itself, and it sends and receives data correctly)
c: in php unit you can create a test database. in the testing tutorials on laracast you can see how it works.
with the second question, in depends on you and your project. in my opinion it's always a good idea to test it on a testing server at least. if you can test it on the live server then even better. it's just my opinion.