When we are confident that all of the interdependent classes work as expected, we can then conduct another type of testing. It consists of simulating the kind of interaction that a user would have through a web browser. This user would, for example, visit a specific URL, perform certain actions, and expect to see some kind of feedback from the application.
This is perhaps the most straightforward type of testing, as it mimics the kind of testing that you manually perform each time you refresh your browser after a code change. When you get started, it is absolutely fine to only perform this type of testing. However, you must bear in mind that if any errors occur, you will still have to drill deep down into your code to find the exact component that caused the error.