Test site--best way to create?


I currently have a wordpress site. To make it easy let's say its using Theme 1 on happy.com.

I want to switch to let's say Theme 2, but it will take a few days. I want the test site to be live, and I don't care if it is accessible to the public, during that time. But I do not want it to affect the first site. So I could theoretically put it in happy.com/testsite.

So here's my question: I know how to make a test site in a separate place on my server. BUT then when I'm ready to move it all over, I need to start over again because of course all the links, photos etc.. will have the url of the second spot, not the first url.

Is there a way to create the second theme somewhere and then port it over automatically without my having to change all the urls or have all the links break etc...?