I'm not sure that from your problem statement I understand all of your constraints, so I'm not sure I can suggest a general answer to your question, but I wish to point out that changing any externally-facing DNS for your test is probably a bad idea -- remember that even after you change it back any other entity on the network that did a query on that DNS record when you had it temporarily redirected is allowed (encouraged, actually) by the DNS protocol to cache the temporary answer for a period of time up to the number of seconds specified in the resource record's TTL (time to live) value.
As you suggest, making changes to the hosts file on your own machine is a minimally-intrusive way to allow your resolver to get the temporary answer you want, while not causing unintended side-effects for other users who are not part of your testing.
If you require something more than you can accomplish by editing the hosts file, you can set up (and direct your resolver to use) a local DNS server with its own custom authoritative copy of the zone -- or set up a special view with a different copy of the zone for testing purposes if your DNS server supports views. By adding your client machine to the address match list for the view you can get one set of answers for your testing while continuing to provide the canonical answers to everyone else.
If you go about it right you can set the view up once and leave it set up for repeated use (avoiding repeated editing), simply adding or removing your test machine from the address match list for the view (or changing the IP of your test machine to match/not match) to change what answers you get..
However, I have the feeling there may be other "gotchas" that aren't evident from your problem statement..