So up until now every time I make an apex class, I make a separate class that tests that class (usually the same name with the suffix "TestClass"), which is what I've seen a lot of people do. However I am now aware that the same thing can be accomplished by annotating test functions inside the main class, instead of having a whole other class (which takes up space in the apex class list).
My question is whether there is a recommended way of doing this or is it literally just user preference? Personally I would prefer inline test methods as it just seems cleaner but are there any repercussions or implications that I should be aware of before changing all my code?