The views implement the user interface. The views are light weight and contain the bare minimum of code. They contain the actual UI components such as buttons, text boxes, and other items. The code that provides logic for the UI but is not part of the application model belongs in the controllers. Controllers provide logic to update views and respond to events such as button clicks. Unit tests are written for controllers but usually not for views as they are typically hard to test.