Having covered unit tests, let's now move on to integration tests. In this type of testing, we're interested in asserting that all the different layers of our application are working together as expected. This is usually done by testing at the edges of your system, letting all the components in your application interact with each other, and then validating that the response is the anticipated one.
There are other types of testing, such as end-to-end testing, which go even a step further and test the system from the perspective of the end user. In our case, this would be through a browser, clicking through the buttons and links inside our application, and then asserting that the user sees the expected information. While ...