Until june 20th 2016 i was able to cancel test purchases done in my app. Doing multiple in-app purchases (not consumable) from the same test account made it easy to develop
What worked for me was a combination of both:
Also, in case you get an item already owned status, you can consume the purchase using the purchase token and calling billingClient.consumeAsync().