Typically you'd put the thing you want to test into a library project (static lib, dll, whatever).
Well, in order to test my classes, I would have to implement or rather copy them from the original project.
Is that right or is there any possibility to refer to my original files which saves rewriting/copying a class?
As the projects are separated, I doubt this is possible though.
You would then have an executable project that contains the tests and runs them (depending on the testing framework; some frameworks load dlls into a "test runner")
Finally you have your game executable which just loads your games library and starts it.
So in visual studio, something like
+ SuperAwesomeGameStuff (library)
- all your game code goes here
+ SuperAwesomeGame (exe)
- just basically has a "main" that starts your game
+ SuperAwesomeTests (exe)
- contains all the tests and runs them