With a good design pattern like MVP, MVC, etc we aim to move all logic out of the GUI. That leaves us with a light weight GUI which ideally just need to “bind” its buttons and fields to properties in some business logic layer. This is a great approach as this layer will be free from GUI stuff, and we can easily write unit tests for it.
My question is: Is this enough? Or should we still unit test the GUI layer?
IMHO if you remove whole logic from GUI, you don’t need to test it automatically. Of course you still need to run it to see if it looks like it should 🙂
This is about unit tests. For integration tests it is still good to test everything, e.g. by Selenium, if possible.