In most cases GUI unit testing is a real pain or even impossible. So the thin layer strategie is good for the complicated logik and the main GUI interaction is caught by code reviews and alpha/beta testing. All other things i tried resulted in a complete economical desaster. And yes, for testing you should consider the same amout of time then for writing the code.